案例1:JAVAGUI用户管理
验证用户输入的账号和密码,通过对用户输入的账号密码进行判断,实现用户登录的功能,录入学生基本信息,对录入的基本信息做合法判断,最后将用户输入的信息写入到文本文件的形式保存到计算的磁盘上。
1.用户登录界面
登录界面包含的要素有:标题、用户名输入框、密码输入框和功能按钮
用户输入框:用于接收用户输入的用户名
密码输入框:用于接收用户输入的密码信息,用*号隐藏显示
功能按钮有:登录、重置、退出
登录:对用户输入的用户名和密码校验,判断是否登录成功,如果登录成功跳转到信息录入界面,如果登录失败则提示用户
重置:对用户输入的用户名和密码进行清空的操作,方便用户重新输入
退出:退出应用程序
登录界面设计如下:
2.数据录入界面
数据录入的界面包含学生的关键信息的填写,包含:姓名、学号、性别、年龄、班级
其中学号信息为必填项,在点击保存时会检查用户的信息是否完整
功能按钮:保存、退出
保存:将用户录入的学生信息,保存到txt文件中,并将学号作为文件名保存到计算机磁盘
退出:退出应用程序
数据录入界面设计如下:
3.程序源码
Login.java
import java.awt.Toolkit; import java.awt.event.*; import javax.swing.*; //用户登录界面 public class Login extends JFrame{ JTextField txtUser; JTextField txtPwd; public Login() { super("你好请登录"); JLabel lbtnLogin = new JLabel("用户名:"); lbtnLogin.setBounds(10, 10, 100, 25); txtUser = new JTextField(20); txtUser.setBounds(110, 10, 100, 25); JLabel lbtnReset = new JLabel("密码:"); lbtnReset.setBounds(10, 45, 100, 25); txtPwd = new JPasswordField(20); txtPwd.setBounds(110, 45, 100, 25); JButton btnLogin = new JButton("登录"); btnLogin.setBounds(10, 80, 80, 25); JButton btnReset = new JButton("重置"); btnReset.setBounds(100, 80, 80, 25); JButton btnExit = new JButton("退出"); btnExit.setBounds(190, 80, 80, 25); //登录 btnLogin.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ee){ String username=txtUser.getText(); String Pwd=txtPwd.getText(); if(username.equals("admin")&Pwd.equals("admin")) { JOptionPane.showMessageDialog(null, "登录成功"); StudentInfoMs s=new StudentInfoMs(); s.CenterPanel(); } else{ JOptionPane.showMessageDialog(null, "登录失败,账号或密码错误"); } } }); ///重置 btnReset.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ee){ txtUser.setText(""); txtPwd.setText(""); } }); //关闭 btnExit.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ee){ System.exit(0); } }); //将控件添加到容器 JPanel p = new JPanel(); p.setLayout(null); p.add(lbtnLogin); p.add(txtUser); p.add(lbtnReset); p.add(txtPwd); p.add(btnLogin); p.add(btnReset); p.add(btnExit); getContentPane().add(p); setSize(300,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } //程序入口 public static void main(String[] args) { Login s=new Login(); s.CenterPanel(); } public void CenterPanel(){ int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setLocation(width / 2 , height / 4); } }
StudentInfoMs.java
import java.awt.Toolkit; import java.awt.event.*; import java.io.PrintWriter; import java.text.SimpleDateFormat; import javax.swing.*; //学生信息管理界面 public class StudentInfoMs extends JFrame{ JTextField txtName; JTextField txtStuno; JTextField txtSex; JTextField txtAge; JTextField txtClass; public StudentInfoMs() { super("请录入学生信息"); JLabel lbname = new JLabel("姓名:"); lbname.setBounds(10, 10, 100, 25); txtName = new JTextField(20); txtName.setBounds(110, 10, 100, 25); JLabel labStuno = new JLabel("学号:"); labStuno.setBounds(10, 45, 100, 25); txtStuno = new JTextField(20); txtStuno.setBounds(110, 45, 100, 25); JLabel labsex = new JLabel("性别:"); labsex.setBounds(10, 80, 100, 25); txtSex = new JTextField(20); txtSex.setBounds(110, 80, 100, 25); JLabel labAge = new JLabel("年龄:"); labAge.setBounds(10, 115, 100, 25); txtAge = new JTextField(20); txtAge.setBounds(110, 115, 100, 25); JLabel labClass = new JLabel("班级:"); labClass.setBounds(10, 150, 100, 25); txtClass = new JTextField(20); txtClass.setBounds(110, 150, 100, 25); JButton btnSave = new JButton("保存"); btnSave.setBounds(50, 185, 80, 25); JButton btnExit = new JButton("退出"); btnExit.setBounds(150, 185, 80, 25); ///保存 btnSave.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ee){ String name=txtName.getText(); String stuno=txtStuno.getText(); if(stuno.equals("")){ JOptionPane.showMessageDialog(null, "学号必须填写"); return; } String sex=txtSex.getText(); String age=txtAge.getText(); String classs=txtClass.getText(); String Result="-----------学生信息-------------\n"; Result+="姓名:"+name+"\n"; Result+="学号:"+stuno+"\n"; Result+="性别:"+sex+"\n"; Result+="年龄:"+age+"\n"; Result+="班级:"+classs+"\n"; SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Result+="保存时间:"+sdf.format(System.currentTimeMillis())+"\n"; //保存结果到根目录下,按学号命名txt文件 try{ PrintWriter writer = new PrintWriter(stuno+".txt", "UTF-8"); writer.println(Result); writer.close(); } catch(Exception e){ JOptionPane.showMessageDialog(null, "学生信息保存异常,请稍后再试"); return; } JOptionPane.showMessageDialog(null, Result+"\n已保存成功!"); } }); //关闭 btnExit.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent ee){ System.exit(0); } }); //将控件添加到容器 JPanel p = new JPanel(); p.setLayout(null); p.add(lbname); p.add(txtName); p.add(labStuno); p.add(txtStuno); p.add(labsex); p.add(txtSex); p.add(labAge); p.add(txtAge); p.add(labClass); p.add(txtClass); p.add(btnSave); p.add(btnExit); getContentPane().add(p); setSize(300,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void CenterPanel(){ int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setLocation(width / 2 , height/4); } }