📄 validateframe.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ValidateFrame extends JFrame implements ActionListener
{
private JTextField nameTextField;
private JPasswordField passwordTextField;
private JPasswordField confirmPswTextField;
JButton okButton;
JButton exitButton;
public ValidateFrame() //构造方法
{
super("Validate");
//声明JLabel标签对象
JLabel name = new JLabel("Name");
JLabel password1 = new JLabel("Password");
JLabel password2 = new JLabel("Comfirm Password");
//创建JButton对象okButton,并指定按钮上字符为"OK"
okButton = new JButton("OK");
exitButton = new JButton("EXIT");
//创建JButton对象exitButton,并指定按钮上字符为"OK"
okButton.addActionListener(this);
//添加okButton事件监听器
exitButton.addActionListener(this);
//添加exitButton事件监听器
//以下用来创建窗口中字符串及密码输入栏
nameTextField = new JTextField(15);
passwordTextField = new JPasswordField(10);
confirmPswTextField = new JPasswordField(10);
//创建JPanel对象NamePanel面板,并在其中加入name标签及用户名输入栏
JPanel NamePanel = new JPanel();
NamePanel.add(name);
NamePanel.add(nameTextField);
//创建JPanel对象passwordPanel1面板,并在其中加入password1标签及密码输入栏
JPanel passwordPanel1 = new JPanel();
passwordPanel1.add(password1);
passwordPanel1.add(passwordTextField);
//创建JPanel对象passwordPanel1面板,并在其中加入password2标签及密码确认输入栏
JPanel passwordPanel2 = new JPanel();
passwordPanel2.add(password2);
passwordPanel2.add(confirmPswTextField);
//创建JPanel对象buttonPanel面板,并在该面板中加入2个按钮
JPanel buttonPanel = new JPanel();
buttonPanel.add(okButton);
buttonPanel.add(exitButton);
//创建并设置窗口布局方式为GridLayout
Container container = this.getContentPane();
container.setLayout(new GridLayout(4,1));
//以下四句将组件添加至窗口中
container.add(NamePanel);
container.add(passwordPanel1);
container.add(passwordPanel2);
container.add(buttonPanel);
setSize(325,225); //设置窗口大小
setVisible(true); //设置窗口为可见
}
public void actionPerformed(ActionEvent e) //按钮事件处理方法
{ //处理按键的事件
if(e.getSource() == okButton) //单击okButton时,程序所作的处理
{
validateDate(); //调用validateDate()方法
}
if(e.getSource() == exitButton) //单击exitButton时,程序所作的处理
{
this.setVisible(false); //设置窗口为不可见
System.exit(0); //退出程序
}
}
private void validateDate()
{ //检验窗口输入栏中,用户输入的数据是否符合要求
if(nameTextField.getText().equals("")||
passwordTextField.getPassword().equals("")||
confirmPswTextField.getPassword().equals("")) // end of condition
JOptionPane.showMessageDialog(this,"Please fill all fields");
//以上用来判断是否有输入栏为空
else if(!nameTextField.getText().matches("[a-zA-Z][a-zA-Z0-9]*"))
JOptionPane.showMessageDialog(this,"Invalid name,the name must begin with letter");
//以上用来判断,用户所输入的用户名是否以字母开头,是否由字母及数字组成
else if(nameTextField.getText().length()>15)
JOptionPane.showMessageDialog(this,"The name's length limit 15 letters");
//以上用来判断,用户输入的用户名,是否超过限定长度的15个字符
else if(passwordTextField.getPassword().length<4)
JOptionPane.showMessageDialog(this,"The password's length is too short");
//以上用来判断,用户输入的密码长度是否少于4个字符
else if(!validatePassword())
JOptionPane.showMessageDialog(this,"The password must contain letters and numbers");
//调用validatePassword()方法,用来判断用户输入的密码的格式是否符合要求,必须同时包含字母和数字
else if(!compareTwoPassword())
JOptionPane.showMessageDialog(this,"The password input are not same");
//调用compareTwoPassword()方法,用来判断用户两次输入的密码是否一致
else
JOptionPane.showMessageDialog(this,"All Data is OK!");
}
private boolean validatePassword() //密码输入校验方法
{
boolean b = false;
String password = new String(passwordTextField.getPassword());
//将字符数组passwordTextField.getPassword()的内容,创建为字符串password
b = password.matches("[a-zA-Z]+[0-9]+");
//使用正则表达式"[a-zA-Z]+[0-9]+"来判断密码password必须同时包含字母和数字
return b;
}
private boolean compareTwoPassword() //两次输入密码核对方法
{
boolean b = false;
String password1 = new String(passwordTextField.getPassword());
//将字符数组passwordTextField.getPassword()的内容,创建为字符串password1
String password2 = new String(confirmPswTextField.getPassword());
//将字符数组confirmPswTextField.getPassword()的内容,创建为字符串password2
if(password1.equals(password2)) b=true; //比较字符串
return b; //返回布尔型变量的值
}
public static void main(String[] args)
{
ValidateFrame validateFrame = new ValidateFrame();
validateFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -