案例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);
}
}

浙公网安备 33010602011771号