[は、Java Swing] JavaでのJPasswordField – JavaでのJPasswordField

コンテンツ
JPasswordFieldを作成
事実の取得とのJPasswordFieldからパスワードを取得します

JPasswordFieldのは、私たちはのようなテキストの行を入力できるようにするオブジェクトです JTextFieldを しかし、アスタリスクで隠されています (*) パスワードを作成したり、ドット (パスワード). JPasswordFieldしばしば対を形成するために一緒に使用されるのJTextField ユーザー名パスワード 下に示すように:

JavaのスイングでのJPasswordField

今、私たちは、上記のような構成の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の 通知を表示するダイアログ.

JavaのスイングでのJPasswordField

次のように完全なコードです

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を使用