用户登录图形化界面(java)

发布时间 2023-09-17 21:29:00作者: 我爱软工

一、题目

 二、源码

(1)USER类(定义用户,包括username,password)

 1 package picture;
 2 
 3 public class USER {
 4     private String username;
 5     private String password;
 6 
 7     public USER(String username, String password) {
 8         this.username = username;
 9         this.password = password;
10     }
11 
12     public USER() {
13     }
14 
15     public String getUsername() {
16         return username;
17     }
18 
19     public void setUsername(String username) {
20         this.username = username;
21     }
22 
23     public String getPassword() {
24         return password;
25     }
26 
27     public void setPassword(String password) {
28         this.password = password;
29     }
30 }

(2)registerJFrame类(用来控制注册)

 1 package picture;
 2 
 3 import javax.swing.*;
 4 import java.awt.*;
 5 import java.awt.event.ActionEvent;
 6 import java.awt.event.ActionListener;
 7 import java.util.ArrayList;
 8 
 9 public class registerJFrame extends JFrame {
10     static ArrayList<USER> list=new ArrayList<>();
11 
12 
13 
14 
15     public registerJFrame(){
16         JFrame jf=new JFrame();
17         jf.setSize(450,300);
18         //点击x后只关闭此界面
19         jf.setDefaultCloseOperation(2);
20         jf.setLocationRelativeTo(null);
21         FlowLayout flow=new FlowLayout();
22         jf.setLayout(flow);
23         //创建账号框
24         JLabel user=new JLabel("账号:");
25         jf.add(user);
26         JTextField jtf=new JTextField();
27         Dimension dm=new Dimension(360,25);
28         jtf.setPreferredSize(dm);
29         jf.add(jtf);
30         //创建密码框
31         JLabel user1=new JLabel("密码:");
32         jf.add(user1);
33         JTextField jtf1=new JTextField();
34         Dimension dm1=new Dimension(360,25);
35         jtf1.setPreferredSize(dm1);
36         jf.add(jtf1);
37 
38 
39         //创建注册按钮
40         JButton jbu=new JButton("快速注册");
41         jf.add(jbu);
42         jbu.addActionListener(new ActionListener() {
43             @Override
44             public void actionPerformed(ActionEvent e) {
45                 //在点完按钮后再添加到集合中
46                 //添加用户到集合list中
47                 USER temp=new USER(jtf.getText(),jtf1.getText());
48                 list.add(temp);
49                 JFrame j=new JFrame();
50                 j.setSize(300,100);
51                 j.setLocationRelativeTo(null);
52                 //只关闭此界面
53                 j.setDefaultCloseOperation(2);
54                 JButton jbu1=new JButton("注册成功");
55                 j.add(jbu1);
56                 jbu1.addActionListener(new ActionListener() {
57                     @Override
58                     public void actionPerformed(ActionEvent e) {
59                         j.dispose();
60                         jf.dispose();
61                     }
62                 });
63                 j.setVisible(true);
64             }
65         });
66         jf.setVisible(true);
67     }
68 
69 }

(3)loginJFrame类(用来控制用户登录)

 1 package picture;
 2 
 3 import javax.swing.*;
 4 import java.awt.*;
 5 import java.awt.event.ActionEvent;
 6 import java.awt.event.ActionListener;
 7 import java.util.ArrayList;
 8 
 9 public class registerJFrame extends JFrame {
10     static ArrayList<USER> list=new ArrayList<>();
11 
12 
13 
14 
15     public registerJFrame(){
16         JFrame jf=new JFrame();
17         jf.setSize(450,300);
18         //点击x后只关闭此界面
19         jf.setDefaultCloseOperation(2);
20         jf.setLocationRelativeTo(null);
21         FlowLayout flow=new FlowLayout();
22         jf.setLayout(flow);
23         //创建账号框
24         JLabel user=new JLabel("账号:");
25         jf.add(user);
26         JTextField jtf=new JTextField();
27         Dimension dm=new Dimension(360,25);
28         jtf.setPreferredSize(dm);
29         jf.add(jtf);
30         //创建密码框
31         JLabel user1=new JLabel("密码:");
32         jf.add(user1);
33         JTextField jtf1=new JTextField();
34         Dimension dm1=new Dimension(360,25);
35         jtf1.setPreferredSize(dm1);
36         jf.add(jtf1);
37 
38 
39         //创建注册按钮
40         JButton jbu=new JButton("快速注册");
41         jf.add(jbu);
42         jbu.addActionListener(new ActionListener() {
43             @Override
44             public void actionPerformed(ActionEvent e) {
45                 //在点完按钮后再添加到集合中
46                 //添加用户到集合list中
47                 USER temp=new USER(jtf.getText(),jtf1.getText());
48                 list.add(temp);
49                 JFrame j=new JFrame();
50                 j.setSize(300,100);
51                 j.setLocationRelativeTo(null);
52                 //只关闭此界面
53                 j.setDefaultCloseOperation(2);
54                 JButton jbu1=new JButton("注册成功");
55                 j.add(jbu1);
56                 jbu1.addActionListener(new ActionListener() {
57                     @Override
58                     public void actionPerformed(ActionEvent e) {
59                         j.dispose();
60                         jf.dispose();
61                     }
62                 });
63                 j.setVisible(true);
64             }
65         });
66         jf.setVisible(true);
67     }
68 
69 }

(4)main方法

 1 package picture;
 2 
 3 import javax.swing.*;
 4 import java.util.ArrayList;
 5 import java.util.Random;
 6 
 7 public class picture1 {
 8     public static void main(String[] args) {
 9         new loginJFrame();
10 
11     }
12 
13 }

三、运行结果

(1)注册

 

 

(2)登录

①成功

 ②失败

 四、总结

(1)需要在一个板块下的多个类中使用同一组数据时,可以将该数据声明为static,然后调用时为方法名.数据名

例:

1 public class registerJFrame extends JFrame {
2     static ArrayList<USER> list=new ArrayList<>();
3 }

 

在另一个类中调用时

 1 for (int i = 0; i < registerJFrame.list.size(); i++) { 2 USER temp=registerJFrame.list.get(i); 3 } 

(2)图形化界面的一些基本操作

 1         JFrame jf=new JFrame();
 2         //设置界面大小
 3         jf.setSize(450,550);
 4         //设置界面标题
 5         jf.setTitle("登录界面");
 6         //设置关闭方式
 7         jf.setDefaultCloseOperation(3);
 8         //设置界面居中
 9         jf.setLocationRelativeTo(null);
10         //设置窗体组件布局风格(流体,左右排布)
11         FlowLayout flow=new FlowLayout();
12         jf.setLayout(flow);
13      //显示可视化界面
14      jf.setVisible(true);

①添加一个输入框

1         //添加账号框
2         JLabel user=new JLabel("账号:");
3         jf.add(user);
4         JTextField jtf=new JTextField();
5         Dimension dm=new Dimension(360,25);
6         jtf.setPreferredSize(dm);
7         jf.add(jtf);

②退出一个界面

 1 JFrame jf=new JFrame();

2 jf.dispose(); 

③得到输入框中输入的数据

1         JLabel user2=new JLabel("验证码:");
2         jf.add(user2);
3         JTextField jtf2=new JTextField();
4         Dimension dm2=new Dimension(260,25);
5         jtf2.setPreferredSize(dm2);
6         jf.add(jtf2);
7         String s=jtf.getText();

④给图形化界面中的按钮(Button)添加监视(也就是点击按钮实现的功能)

1         JButton jbu1=new JButton("注册");
2         jf.add(jbu1);
3         jbu1.addActionListener(new ActionListener() {
4             @Override
5             public void actionPerformed(ActionEvent e) {
6                 new registerJFrame();
7             }
8         });

 

(3)StringBuiler类

1 StringBuilder sb=new StringBuilder();
2         for (int i = 0; i < 6; i++) {
3             int x=r.nextInt(52);
4             sb.append(arr[x]);
5         }
6         String res=sb.toString();