- 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 )
JavaDrive