成果图:
输入账号密码错误三次自动退出
步骤:
1、声明变量:提示语JLabel、文本输入框JTextField、按钮:JButton
2、设置提示语、文本框并加入JPanel中
3、添加设置按钮、并给按钮添加监听器addActionListener
4、修改外观、设置边框大小
5、后端部分(当按下按钮后响应结果)
全部代码:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
public class Denglu {
public static void main(String[] args) {
Denglu1 d1 = new Denglu1();
}
}
class Denglu1 extends JFrame implements ActionListener {
JLabel tishi; //提示语
JTextField txtUserName,txtUserPW; //文本框
JButton b1,b2;
public int sum = 1; //统计次数
Denglu1(){
JPanel p = new JPanel(); // 新建画布
JLabel tishi = new JLabel(" 请输入用户名和密码 ");
p.add(tishi); // 加入画布中
JLabel UserName = new JLabel("账号"); // 文本框提示语
p.add(UserName);
txtUserName = new JTextField(20); // 设置文本框大小
p.add(txtUserName);
JLabel UserPW = new JLabel("密码");
p.add(UserPW);
txtUserPW = new JTextField(20);
p.add(txtUserPW);
b1 = new JButton("登录"); // 添加按钮
b2 = new JButton("退出");
p.add(b1);
p.add(b2);
b1.addActionListener(this); // 给按钮设置监听器
b2.addActionListener(this);
p.setBackground(Color.lightGray); //背景颜色
add(p); // 添加显示画板
setSize(300,200);
setVisible(true); // 显示
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1) { // 监听到登录键按下
if(txtUserName.getText().equals("abc") && txtUserPW.getText().equals("abc")) {
JOptionPane.showMessageDialog(this, "登录成功!","成功!!",JOptionPane.WARNING_MESSAGE);
}
else {
if(sum>=3){
JOptionPane.showMessageDialog(this, "输入次数过多,即将退出","错误!",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
else {
JOptionPane.showMessageDialog(this, "还能输入"+(3-sum)+"次","账号密码错误",JOptionPane.WARNING_MESSAGE);
sum = sum + 1; // 给错误的次数加1,达到3次自动退出
}
}
}
else if(e.getSource() == b2) { // 按下退出键退出
System.exit(0);
}
}
}
代码解析:
步骤一:声明变量
JLabel tishi; //提示语
JTextField txtUserName,txtUserPW; //文本框
JButton b1,b2;
public int sum = 1; //后续统计错误的次数
步骤二:设置提示语、文本框
提示语:
JPanel p = new JPanel(); // 新建画布
JLabel tishi = new JLabel(" 请输入用户名和密码 ");
p.add(tishi); // 加入画布
账号密码那两行:
JLabel UserName = new JLabel("账号"); // 文本框提示语
p.add(UserName);
txtUserName = new JTextField(20); // 设置文本框大小
p.add(txtUserName);
JLabel UserPW = new JLabel("密码"); // 原理同上
p.add(UserPW);
txtUserPW = new JTextField(20);
p.add(txtUserPW);
步骤三:设置按钮
b1 = new JButton("登录"); // 添加按钮
b2 = new JButton("退出");
p.add(b1);
p.add(b2);
b1.addActionListener(this); // 给按钮设置监听器
b2.addActionListener(this);
步骤四:显示画板
p.setBackground(Color.lightGray); //背景颜色
add(p); // 添加显示画板
setSize(300,200);
setVisible(true); // 显示
步骤五:当按下按钮后(后端)
为方便测试,这里账号密码默认为abc
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1) { // 监听到登录键按下
if(txtUserName.getText().equals("abc") && txtUserPW.getText().equals("abc")) {
JOptionPane.showMessageDialog(this, "登录成功!","成功!!",JOptionPane.WARNING_MESSAGE);
}
else {
if(sum>=3){
JOptionPane.showMessageDialog(this, "输入次数过多,即将退出","错误!",JOptionPane.WARNING_MESSAGE);
System.exit(0);
}
else {
JOptionPane.showMessageDialog(this, "还能输入"+(3-sum)+"次","账号密码错误",JOptionPane.WARNING_MESSAGE);
sum = sum + 1; // 给错误的次数加1,达到3次自动退出
}
}
}
else if(e.getSource() == b2) { // 按下退出键退出
System.exit(0);
}
}