[は、Java Swing] JavaでのJPasswordField – JavaでのJPasswordField
コンテンツ
JPasswordFieldを作成
事実の取得とのJPasswordFieldからパスワードを取得します
JPasswordFieldのは、私たちはのようなテキストの行を入力できるようにするオブジェクトです JTextFieldを しかし、アスタリスクで隠されています (*) パスワードを作成したり、ドット (パスワード). JPasswordFieldしばしば対を形成するために一緒に使用されるのJTextField ユーザー名 と パスワード 下に示すように:
今、私たちは、上記のような構成のJPasswordFieldのプログラムを介して行きますよ.
JPasswordFieldを作成
我々は、通常のJPasswordFieldを初期化するために使用される方法の数を有します:
– JPasswordField(): 何のテキストと幅がありませんJPasswordFieldの初期化 0 ポスト
– JPasswordField(int型の列): 何のテキストと列の幅が列ではないのJPasswordField初期化
– JPasswordField(文字列のテキスト): JPasswordFieldのオリジナルテキストボイトを初期化します
– JPasswordField(文字列のテキスト, int型の列): フォイトJPasswordFieldの列は初期テキストと列の幅を初期化します
まず、プログラムの外観を作成するために行きます. インタフェースの構成は 1 JPanelの メインパネルが設定されています BorderLayoutの 含まれている入力パネルとButtonPanel. 入力パネルは、JPanelのを置きます GridLayoutの 含みます 2 JLabelの, 1 JTextFieldのnhậpユーザー名, 1 JPasswordFieldのはパスワードを入力します. ButtonPanelは含まれてい 2 JButtonの あるbtnLoginとbtnHelp.
package nguyenvanquan7826.JPasswordField; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class MyJPasswordField extends JFrame implements ActionListener { private JTextField tfUserName; private JPasswordField pf; private JButton btnLogin, btnHelp; public MyJPasswordField() { // add main panel to frame add(createMainPanel()); // set display setTitle("JPasswordField"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } // create main panel containes input panel and button panel private JPanel createMainPanel() { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(new EmptyBorder(10, 10, 10, 10)); panel.add(createInputPanel(), BorderLayout.CENTER); panel.add(createButtonPanel(), BorderLayout.PAGE_END); return panel; } // create input panel private JPanel createInputPanel() { int col = 15; // column of JTextField and JPasswordField JPanel panel = new JPanel(new GridLayout(2, 2, 5, 5)); panel.add(createLabel("User name:")); panel.add(tfUserName = createTextField(col)); panel.add(createLabel("Password:")); panel.add(pf = createPasswordField(col)); return panel; } // create button panel with button login and button help private JPanel createButtonPanel() { JPanel panel = new JPanel(); panel.add(btnLogin = createButton("Login")); panel.add(btnHelp = createButton("Help")); return panel; } // create a JLabel with text private JLabel createLabel(String text) { JLabel lb = new JLabel(text); return lb; } // create JTextField with column is col private JTextField createTextField(int col) { JTextField tf = new JTextField(col); return tf; } // create JPasswordField with column is col private JPasswordField createPasswordField(int col) { JPasswordField pf = new JPasswordField(col); return pf; } // create JButton with text is btnName and add ActionListener private JButton createButton(String btnName) { JButton btn = new JButton(btnName); btn.addActionListener(this); return btn; } @Override public void actionPerformed(ActionEvent e) { } public static void main(String[] args) { new MyJPasswordField(); } }
次のことは、私たち自身のイベントを作成することで、メッセージログ成功か失敗かを表示するには、ユーザー名とパスワードを取得し、元のデータと比較するために始めました.
事実の取得とのJPasswordFieldからパスワードを取得します
JPasswordFieldのイベントをキャッチするには、JButtonのに似ています, 我々は確認する必要があり addActionListener それのための. そして、もう一つのポイントであることが多いです setActionCommand それは、パスワードを入力した後に終了し、それも面倒クリックせずに処理を行うことができます押してbtnLogin、アクションコマンドと似ていますbtnLogin. 方法を使用して getPasswordに() JPasswordFieldのにパスワードを取得します. このメソッドは、パスワード文字列の文字として文字の配列を返します。. 私たちは、メソッドを使用することができます のgetText() もう使用しないことをお勧めします.
私たちは、メソッドを更新する必要があります createPasswordField VA createButton 次のように:
// create JPasswordField with column is col private JPasswordField createPasswordField(String action, int col) { JPasswordField pf = new JPasswordField(col); // set actionCommand for JPasswordField pf.setActionCommand(action); // add action for JPasswordField pf.addActionListener(this); return pf; } // create JButton with text is btnName and add ActionListener private JButton createButton(String action, String btnName) { JButton btn = new JButton(btnName); btn.setActionCommand(action); btn.addActionListener(this); return btn; }
最後に、残りのデータのみが処理され、. 我々が使用するメッセージを表示するように注意してください JOptionPaneの 通知を表示するダイアログ.
次のように完全なコードです
package nguyenvanquan7826.JPasswordField; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class MyJPasswordField extends JFrame implements ActionListener { private JTextField tfUserName; private JPasswordField pf; private JButton btnLogin, btnHelp; String actionLogin = "login"; String actionHelp = "help"; public MyJPasswordField() { // add main panel to frame add(createMainPanel()); // set display setTitle("JPasswordField"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } // create main panel containes input panel and button panel private JPanel createMainPanel() { JPanel panel = new JPanel(new BorderLayout()); panel.setBorder(new EmptyBorder(10, 10, 10, 10)); panel.add(createInputPanel(), BorderLayout.CENTER); panel.add(createButtonPanel(), BorderLayout.PAGE_END); return panel; } // create input panel private JPanel createInputPanel() { int col = 15; // column of JTextField and JPasswordField JPanel panel = new JPanel(new GridLayout(2, 2, 5, 5)); panel.add(createLabel("User name:")); panel.add(tfUserName = createTextField(col)); panel.add(createLabel("Password:")); panel.add(pf = createPasswordField(actionLogin, col)); return panel; } // create button panel with button login and button help private JPanel createButtonPanel() { JPanel panel = new JPanel(); panel.add(btnLogin = createButton(actionLogin, "Login")); panel.add(btnHelp = createButton(actionHelp, "Help")); return panel; } // create a JLabel with text private JLabel createLabel(String text) { JLabel lb = new JLabel(text); return lb; } // create JTextField with column is col private JTextField createTextField(int col) { JTextField tf = new JTextField(col); return tf; } // create JPasswordField with column is col private JPasswordField createPasswordField(String action, int col) { JPasswordField pf = new JPasswordField(col); // set actionCommand for JPasswordField pf.setActionCommand(action); // add action for JPasswordField pf.addActionListener(this); return pf; } // create JButton with text is btnName and add ActionListener private JButton createButton(String action, String btnName) { JButton btn = new JButton(btnName); btn.setActionCommand(action); btn.addActionListener(this); return btn; } // check password private boolean checkData(String inputUserName, char[] inputPassword) { String userName = "nguyenvanquan"; char[] password = { '7', '8', '2', '6' }; return (Arrays.equals(inputPassword, password) && userName .equals(inputUserName)); } @Override public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); // enter on JPasswordField or click button Login to Login if (actionLogin.equals(command)) { if (checkData(tfUserName.getText(), pf.getPassword())) { JOptionPane.showMessageDialog(null, "login success!", "login", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "login failed, Try again!", "login", JOptionPane.ERROR_MESSAGE); } return; } // click button help if (actionHelp.equals(command)) { JOptionPane.showMessageDialog(null, "get user name and password in" + "n" + "cachhoc.net", "help", JOptionPane.INFORMATION_MESSAGE); return; } } public static void main(String[] args) { new MyJPasswordField(); } }
続きを読む: クラスのJPasswordField, JPasswordFieldを使用
彼は、私はそれが新しいフレームに移動しますログインをクリックしてログインしたいように扱われなければならないあなたのために大声で時間を尋ねたどのように彼を
新しいフラムが中である初期化.
彼がどのように処理したかのステートメント
新しいMyFrameとを用いて、().
さて感謝は私のanh.emこと
ああ、質問Fの電子上の例でより多くを行うことができます 1 フレームには、新しいアカウントを作成します. しかし、ときに電子ボタン “新しいアカウントを作成する” 登録までのそれをフレームが、電子ソリューション.Aログフレームがkhong.eおかげで上書きしました.
これは、通常のオーバーライドをされています. 重要ではありません.
私は、メソッドのために彼に尋ねたsetActioncommad(); それまでの彼のパス 1 それがどのように動作するかの文字列?
それはようなものです 1 比較すると知ることができるのactionPerformedにチェックするための鍵は、どのようなアクションキャッチしているとき、多くのためのボタンイベント.