- Home ›
- Swing ›
- パスワードフィールドの作成(JPasswordFieldクラス) ›
- HERE
入力された値の取得
パスワードフィールドに入力された値を取得するにはJPasswordFieldクラスで定義されているgetPasswordメソッドを使います。
getPassword public char[] getPassword()
この TextComponent に格納されたテキストを返します。基本となるドキュメントが null の場合は、 NullPointerException を返します。セキュリティー強化のために、返された文字の配列を使用した あとは、各文字をゼロに設定してクリアすることをお勧めします。 戻り値: テキスト
パスワードフィールドに入力された値をchar型の配列として返します。(Stringクラスのオブジェクトではないので注意して下さい)。
実際の使い方は次のようになります。
JPasswordField pass = new JPasswordField(20); char[] password = pass.getPassword();
なおchar型の配列をStringクラスのオブジェクトにするには次のように記述します。
JPasswordField pass = new JPasswordField(20); char[] password = pass.getPassword(); String passwordstr = new String(password);
他の文字列と比較したい場合などはいったんStringクラスのオブジェクトに変換して下さい。
サンプルプログラム
では実際に試してみます。
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.JOptionPane; import java.awt.Container; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; class SSample2_1 extends JFrame implements ActionListener{ JPasswordField pass; public static void main(String args[]){ SSample2_1 frame = new SSample2_1("タイトル"); frame.setVisible(true); } SSample2_1(String title){ setTitle(title); setBounds(100, 100, 300, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); JLabel label = new JLabel("パスワードを入力:"); pass = new JPasswordField(10); JButton button = new JButton("確認"); button.addActionListener(this); p.add(label); p.add(pass); p.add(button); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e){ String password = new String(pass.getPassword()); if (password.equals("0000")){ JLabel label = new JLabel("認証に成功しました"); JOptionPane.showMessageDialog(this, label, "成功", JOptionPane.INFORMATION_MESSAGE); }else{ JLabel label = new JLabel("パスワードが違います"); JOptionPane.showMessageDialog(this, label, "失敗", JOptionPane.ERROR_MESSAGE); pass.setText(""); } } }
ではコンパイルを行った上で実行してみます。
パスワードフィールドに適当に文字を入力してから「確認」ボタンを押して下さい。
ダイアログが表示され「パスワードが違います」と表示されます。ではパスワードフィールドに"0000"と入力してから「確認」ボタンを押して下さい。
ダイアログが表示され「認証に成功しました」と表示されます。
( Written by Tatsuo Ikura )