抽象老师!!不许挂我!!

其六,学生信息管理系统

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class AddStudentUI {
    //生产“添加学生界面”
    public void init(){
        //学号
        JLabel snoLabel = new JLabel("学号:");
        snoLabel.setPreferredSize(new Dimension(60,25));
        final JTextField snoText = new JTextField();
        snoText.setPreferredSize(new Dimension(280,25));
        //姓名
        JLabel snameLabel = new JLabel("姓名:");
        snameLabel.setPreferredSize(new Dimension(60,25));
        final JTextField snameText = new JTextField();
        snameText.setPreferredSize(new Dimension(280,25));
        //性别
        JLabel sexLabel = new JLabel("性别:");
        sexLabel.setPreferredSize(new Dimension(60,25));
        final JTextField sexText = new JTextField();
        sexText.setPreferredSize(new Dimension(280,25));
        //年龄
        JLabel ageLabel = new JLabel("学号:");
        ageLabel.setPreferredSize(new Dimension(60,25));
        final JTextField ageText = new JTextField();
        ageText.setPreferredSize(new Dimension(280,25));
        //专业
        JLabel majorLabel = new JLabel("专业:");
        majorLabel.setPreferredSize(new Dimension(60,25));
        final JTextField majorText = new JTextField();
        majorText.setPreferredSize(new Dimension(280,25));
        //添加按钮
        JButton saveBtn = new JButton("添加");
        //创建一个带标题的窗口
        final JFrame frame = new JFrame("添加学生");
        //获得此窗口的内容面板(中间容器)
        Container cp = frame.getContentPane();
        //设置布局为注式布局,组件默认式居中水平对齐、水平和垂直距离是20和10
        cp.setLayout(new FlowLayout(FlowLayout.CENTER,20,10));
        //按顺序将各个组件加入容器
        cp.add(snoLabel);
        cp.add(snoText);
        cp.add(snameLabel);
        cp.add(snameText);
        cp.add(sexLabel);
        cp.add(sexText);
        cp.add(ageLabel);
        cp.add(ageText);
        cp.add(majorLabel);
        cp.add(majorText);
        cp.add(saveBtn);
        frame.setSize(420,280);
        frame.setLocationRelativeTo(null);//在屏幕居中
        frame.setVisible(true);//设置窗口可见
        frame.setResizable(false);//设置不允许调整大小
        //设置“添加“按钮的点击监听器
        saveBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取输入的相关信息,并进行验证
                String sno = snoText.getText().trim();
                if(sno==null || sno.equals("")){
                    JOptionPane.showMessageDialog(null,"学号不能为空!");
                    snoText.requestFocus();
                    return;
                }
                String sname = snameText.getText().trim();
                if(sname==null || sname.equals("")){
                    JOptionPane.showMessageDialog(null,"姓名不能为空!");
                    snameText.requestFocus();
                    return;
                }
                String sex = sexText.getText().trim();
                if(sex==null || sex.equals("")){
                    JOptionPane.showMessageDialog(null,"性别不能为空!");
                    sexText.requestFocus();
                    return;
                }
                String age = ageText.getText().trim();
                if(age==null || age.equals("")){
                    JOptionPane.showMessageDialog(null,"年龄不能为空!");
                    ageText.requestFocus();
                    return;
                }
                String major = majorText.getText().trim();
                if(major==null || major.equals("")){
                    JOptionPane.showMessageDialog(null,"专业不能为空!");
                    majorText.requestFocus();
                    return;
                }//模拟添加成功
                JOptionPane.showMessageDialog(null,"添加学生成功!");
                //关闭当前“添加学生”窗口
                frame.dispose();
                //打开“学生查询”窗口
                new ListStudentUI().init();
            }
        });
    }
}

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.HashMap;
import java.util.Map;

public class ListStudentUI {
    //选中的学生学号
    String sno;
    //生产“学生列表界面”
    public void init(){
        try{
            //创建一个面板,添加“修改”和“删除”按钮
            JPanel panel = new JPanel();
            JButton editBtn = new JButton("修改");
            JButton delBtn = new JButton("删除");
            panel.add(editBtn);
            panel.add(delBtn);
            //创建一个表格对象,用来显示所以的学生数据
            final JTable table = new JTable();
            //定义表格的标题数据
            String columnNames[]={"学号","姓名","性别","年龄","专业"};
            //模拟获取到所有的学生数据
            Object data[][]={
                    new Object[]{"20231012101","王小勇","男","19","计算机科学与技术"},
                    new Object[]{"20231012102","刘丽","女","18","网络工程"},
                    new Object[]{"20231012116","沈晓明","男","20","计算机科学与技术"},
                    new Object[]{"20231012324","李志刚","男","19","物联网工程"},
                    new Object[]{"20231012101","赵晓宇","女","19","计算机科学与技术"},
            };
            //把准备的数据加入到表格对象table中
            table.setModel(new DefaultTableModel(data,columnNames));
            //创建一个带滚动条的面板,把表格融放入面板中
            JScrollPane scrollPane = new JScrollPane(table);
            //创建一个带标题的窗口
            final JFrame frame = new JFrame("学生列表");
            //窗口使用BorderLayout方式布局,将此面板添加入窗口北侧区域
            frame.add(panel, BorderLayout.NORTH);
            //将带滚动条的面板添加入窗口的中间区域
            frame.add(scrollPane,BorderLayout.CENTER);
            frame.setSize(600,360);//宽600,高360
            frame.setLocationRelativeTo(null);//在屏幕居中
            frame.setVisible(true);//设置窗口可见
            frame.setResizable(false);//设置不允许调整大小
            //给JTable设置鼠标监听器
            table.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent event) {
                    //获取选中的行的索引第一行0第二行1
                    int row = table.getSelectedRow();
                    //获取表格管理数据的模式
                    DefaultTableModel model = (DefaultTableModel) table.getModel();
                    //获取选中行的第一列数据,即学号
                    sno=(String) model.getValueAt(row,0);
//                    System.out.println("选中的 学号:"+sno);
                }
            });
            //设置“修改”按钮的点击监听器
            editBtn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if(sno==null || sno.equals("")) {
                        JOptionPane.showMessageDialog(null,"请选中要修改的记录");
                        return;
                    }else{
                        //模拟查询出一个学生数据
                        Map<String,String> r=new HashMap<String ,String>();
                        r.put("sno","20231012101");
                        r.put("sname","王小勇");
                        r.put("sex","男");
                        r.put("age","19");
                        r.put("major","计算机科学与技术");
                        //关闭当前“学生列表”窗口
                        frame.dispose();
                        //打开“学生修改”窗口,把该生的原有信息传进去
                        new UpdateStudentUI().init(r);
                    }
                }
            });
            //设置“删除”按钮的点击监听器
            delBtn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if(sno==null || sno.equals("")) {
                        JOptionPane.showMessageDialog(null, "请选中要删除的记录");
                    }else {
                        //弹出确认对话框
                        int flag=JOptionPane.showConfirmDialog(null,"你确定要删除选中的学生?",
                                "确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
                        if(flag==JOptionPane.YES_NO_CANCEL_OPTION){
                            JOptionPane.showMessageDialog(null,"删除学生成功!");
                            frame.dispose();
                            new ListStudentUI().init();
                        }
                    }
                }
            });
            }catch (Exception e){
                e.printStackTrace();
        }
    }
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class LoginUI {
    //程序执行入口
    public static void main(String[] args) {
        //调用生成登录界面的方法
        new LoginUI().init();
    }
//生成登录界面
void init() {
        JLabel userLabel = new JLabel( "账号:");//账号标签
        //账号标签:距离左30,上30,宽80,高50
        userLabel.setBounds(30,30,80,25);
        //账号输入框:距离左115,上30,宽200,高25
        final JTextField username = new JTextField(20);
        username.setBounds(115,30,200,25);//账号输入框位置及宽高
        JLabel pwdLabel = new JLabel( "密码:");//密码标签
        pwdLabel.setBounds(30,60,80,25);//设置密码标签位置及宽高
        final JPasswordField pwd = new JPasswordField(20);//账号输入框位置及宽高
        pwd.setBounds(115,60,200,25);//账号输入框位置及宽高
        JButton loginBtn = new JButton("登录");
        loginBtn.setBounds(115,110,80,25);
        //创建一个带标题的窗口
        final JFrame frame1 = new JFrame("学生信息管理系统");
        //获得此窗口的内容面板(中间容器)
        Container cp = frame1.getContentPane();
        cp.setLayout(null);//设置布局为null
        //将各个组件加入容器
        cp.add(userLabel);
        cp.add(username);
        cp.add(pwdLabel);
        cp.add(pwd);
        cp.add(loginBtn);
        frame1.setSize(400,260);//宽400,高260
        frame1.setLocationRelativeTo(null);//在屏幕中居中
        frame1.setVisible(true);//设置窗口可见
        frame1.setResizable(false);//设置不允许调整大小
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置X号后结束整个程序
        //设置登录按钮的监听器
        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                //获取用户名
                String inputName = username.getText().trim();
                //获取密码
                String inputPwd = new String(pwd.getPassword());
                if (inputName.equals("张三")&& inputPwd.equals("111111")){
                    //登陆成功
                    new MainUI().init();
                    //销毁登录界面
                    frame1.dispose();
                }else{
                    JOptionPane.showMessageDialog(null,"用户或密码错误");
                }
            }
        });
    }
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//系统主界面
public class MainUI {
    //生成系统主界面
    public void init(){
        //创建一个菜单栏
        JMenuBar bar = new JMenuBar();
        //创建菜单-学生管理
        JMenu menu1 = new JMenu("学生管理");
        //创建菜单项
        JMenuItem menu1_item1 = new JMenuItem("查询学生");
        JMenuItem menu1_item2 = new JMenuItem("添加学生");
        //把菜单项加入菜单
        menu1.add(menu1_item1);
        menu1.add(menu1_item2);
        //把菜单项加入“菜单栏”中
        bar.add(menu1);

        JMenu menu2 = new JMenu("教师管理");
        //创建菜单项
        JMenuItem menu2_item1 = new JMenuItem("查询教师");
        JMenuItem menu2_item2 = new JMenuItem("添加教师");
        //把菜单项加入菜单
        menu2.add(menu2_item1);
        menu2.add(menu2_item2);
        //把菜单项加入“菜单栏”中
        bar.add(menu2);

        JMenu menu3 = new JMenu("课程管理");
        //创建菜单项
        JMenuItem menu3_item1 = new JMenuItem("查询课程");
        JMenuItem menu3_item2 = new JMenuItem("添加课程");
        //把菜单项加入菜单
        menu3.add(menu3_item1);
        menu3.add(menu3_item2);
        //把菜单项加入“菜单栏”中
        bar.add(menu3);
        JMenu menu4 = new JMenu("成绩管理");//创建菜单项
        JMenuItem menu4_item1 = new JMenuItem("查询成绩");
        JMenuItem menu4_item2 = new JMenuItem("添加成绩");//把菜单项加入菜单
        menu4.add(menu4_item1);
        menu4.add(menu4_item2);//把菜单项加入“菜单栏”中
        bar.add(menu4);
        JMenu menu5 = new JMenu("系统管理");//创建菜单项
        JMenuItem menu5_item1 = new JMenuItem("修改密码");
        JMenuItem menu5_item2 = new JMenuItem("退出系统");//把菜单项加入菜单
        menu5.add(menu5_item1);
        menu5.add(menu5_item2);//把菜单项加入“菜单栏”中
        bar.add(menu5);//创建一个带标题的窗口
        final JFrame frame = new JFrame("学生信息管理系统");//获得此窗口的内容面板(中间容器)
        Container cp = frame.getContentPane();
        cp.setLayout(null);//设置布局为null//把菜单栏加入窗口中
        frame.setJMenuBar(bar);
        frame.setSize(800,560);
        frame.setLocationRelativeTo(null);//在屏幕居中
        frame.setVisible(true);//设置窗口可见
        frame.setResizable(false);//设置不允许调整大小
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置X号后结束整个程序
        //设置“查询学生”菜单的点击监听器
        menu1_item1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                //打开“学生列表“界面
                new ListStudentUI().init();
            }
        });
        //设置“添加学生”菜单的点击监听器
        menu1_item2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //打开“学生列表”界面
                new AddStudentUI().init();
            }
        });
        //设置“退出系统”菜单的点击监听器
        menu5_item2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //关闭当前“系统主界面”窗口
                frame.dispose();
                //打开“系统登录”界面
                new LoginUI().init();
            }
        });
    }
}

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Map;
import java.awt.Container;

public class UpdateStudentUI {
    public void init(Map<String,String> r){
        //获取要修改信息的学生的学号
        final String mysno = r.get("sno");//学号
        JLabel snoLabel = new JLabel("学号:");
        snoLabel.setPreferredSize(new Dimension(60,25));
        final JTextField snoText = new JTextField();
        snoText.setPreferredSize(new Dimension(280,25));
        //把学生原有的学号填回到学号文本框
        snoText.setText(mysno);//姓名
        JLabel snameLabel = new JLabel("姓名:");
        snameLabel.setPreferredSize(new Dimension(60,25));
        final JTextField snameText = new JTextField();
        snameText.setPreferredSize(new Dimension(280,25));
        //把学生原有的姓名填回到姓名文本框
        snameText.setText(r.get("name"));//性别
        JLabel sexLabel = new JLabel("性别:");
        sexLabel.setPreferredSize(new Dimension(60,25));
        final JTextField sexText = new JTextField();
        sexText.setPreferredSize(new Dimension(280,25));
        //把学生原有的性别填回到性别文本框
        sexText.setText(r.get("sex"));//年龄
        JLabel ageLabel = new JLabel("年龄:");
        ageLabel.setPreferredSize(new Dimension(60,25));
        final JTextField ageText = new JTextField();
        ageText.setPreferredSize(new Dimension(280,25));
        //把学生原有的年龄填回到年龄文本框
        ageText.setText(r.get("age"));//专业
        JLabel majorLabel = new JLabel("专业:");
        majorLabel.setPreferredSize(new Dimension(60,25));
        final JTextField majorText = new JTextField();
        majorText.setPreferredSize(new Dimension(280,25));
        //把学生原有的专业填回到专业文本框
        majorText.setText(r.get("major"));//添加按钮
        JButton saveBtn = new JButton("修改");//创建一个带标题的窗口
        final JFrame frame = new JFrame("修改学生");
        //获得此窗口的内容面板(中间容器)
        Container cp = frame.getContentPane();
        //设置布局为注式布局,组件默认是居中对齐,水平和垂直距离是20盒10
        cp.setLayout(new FlowLayout(FlowLayout.CENTER,20,10));
        //按顺序将各个组件加入容器
        cp.add(snoLabel);
        cp.add(snoText);
        cp.add(snameLabel);
        cp.add(snameText);
        cp.add(sexLabel);
        cp.add(sexText);
        cp.add(ageLabel);
        cp.add(ageText);
        cp.add(majorLabel);
        cp.add(majorText);
        cp.add(saveBtn);
        frame.setSize(420,280);
        frame.setLocationRelativeTo(null);//在屏幕居中
        frame.setVisible(true);//设置窗口可见
        frame.setResizable(false);//设置不允许调整大小
        //设置“添加“按钮的点击监听器
        saveBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                //注意:这里获取学生的信息是新的信息,可能和原来一样,也可能不一样
                //获取输入的相关信息,并进行验证
                String sno = snoText.getText().trim();
                if (sno == null || sno.equals("")) {
                    JOptionPane.showMessageDialog(null, "学号不能为空!");
                    snoText.requestFocus();
                    return; }
                String sname = snameText.getText().trim();
                if (sname == null || sname.equals("")) {
                    JOptionPane.showMessageDialog(null, "姓名不能为空!");
                    snameText.requestFocus();
                    return; }
                String sex = sexText.getText().trim();
                if (sex == null || sex.equals("")) {
                    JOptionPane.showMessageDialog(null, "性别不能为空!");
                    sexText.requestFocus();
                    return; }
                String age = ageText.getText().trim();
                if (age == null || age.equals("")) {
                    JOptionPane.showMessageDialog(null, "年龄不能为空!");
                    ageText.requestFocus();
                    return; }
                String major = majorText.getText().trim();
                if (major == null || major.equals("")) {
                    JOptionPane.showMessageDialog(null, "专业不能为空!");
                    majorText.requestFocus();
                    return; }//模拟添加成功
                JOptionPane.showMessageDialog(null, "修改学生成功!");
                //关闭当前“添加学生”窗口
                frame.dispose();//打开“学生查询”窗口
                new ListStudentUI().init();
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值