s
o
u
l
s
j
i
e

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

  

 

 

posted @ 2022-07-01 17:15  soulsjie  阅读(270)  评论(0编辑  收藏  举报
你累吗?累就对了,当你觉得累时证明你在走上坡路!-----NotFoundObject - 2016-12-14 08:43