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

      

     

  • 相关阅读:
    Java中通过TCP协议发送和接收数据-Socket编程
    Java中通过UDP协议发送和接受数据
    多线程——线程范围内变量的共享
    多线程——线程间的同步通信
    多线程——线程同步互斥(synchronized)
    多线程——线程的生命周期
    多线程——线程的创建以及操作线程的相关方法简介
    iOS集成ShareSDK微博分享遇到问题 新浪微博登录redirect_uri_mismatch
    iOS中改变部分字体颜色
    CSS属性
  • 原文地址:https://www.cnblogs.com/soulsjie/p/16435361.html
Copyright © 2020-2023  润新知