[的Java Swing] JPasswordField中使用Java – JPasswordField中使用Java
内容
创建JPasswordField中
获取的事实,并从JPasswordField中的密码
JPasswordField中的对象允许我们输入了一行字像 JTextField的 但隐藏星号 (*) 或点创建密码 (密码). JPasswordField中经常一起使用以创建一对的JTextField 用户名 和 密码 如下所示:

现在,我们将通过建设JPasswordField中的程序如上.
创建JPasswordField中
我们有许多方法通常用于初始化JPasswordField中:
– JPasswordField中(): 初始化JPasswordField中没有任何文字和宽度 0 职位
– JPasswordField中(INT列): 初始化JPasswordField中没有文本列和列宽度
– JPasswordField中(文本字符串): 初始化原文Voit的JPasswordField中
– JPasswordField中(文本字符串, INT列): 初始化JPasswordField中Voit的原始文本列和列宽
首先,我们将创建的程序的接口. 接口包括 1 的JPanel 主面板中设置 BorderLayout的 包含输入面板和ButtonPanel. 输入面板放一个JPanel GridLayout的 含有 2 的JLabel, 1 JTextField的nHAP颗粒用户名, 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 它类似于ActionCommand btnLogin完成时,按Enter键输入密码,就可以使这个过程甚至不需要费力点击btnLogin. 使用方法 getPassword来() 检索在JPasswordField中的密码. 这个方法返回一个字符数组作为密码字符串中的字符. 我们可以使用该方法 的getText() 但建议不要使用更多.
我们需要更新的方法 createPasswordField和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中



他问^ h大声对你,我要登录点击Login,将移动到一个新的框架都必须这样来处理他怎么
您初始化新弗拉姆正在.
声明他怎么处理
使用新MyFrame().
好感谢是我的anh.em
哦,对于f的一个问题是关于电子的例子还可以做更多 1 框架创建一个新帐户. 但是,当电子按钮 “建立新帐户” 帧它登记了,但被重写逻辑框架。一个é解决方案是khong.e感谢.
这是正常的重写. 无所谓的.
我问他的方法setActioncommad(); 他传递给它 1 字符串它是如何工作?
这就像 1 关键中的actionPerformed检查可以比较,知道什么样的行动是在捕捞时很多按钮事件.