一、题目
二、源码
(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();
标签:JFrame,界面,import,public,add,new,java,jf,图形化 From: https://www.cnblogs.com/lian369/p/17709855.html