欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java学生管理系统(增删改查存)

程序员文章站 2024-01-09 17:32:10
##java学生管理系统(增删改查存)说明:1.期末结课做的简易的学生管理系统(java+mysql+excel+文本);2.仅实现增删改查,显示,存储等界面操作;实验报告如下:1.数据库2.需要添加额外的jar包(连接数据库或者工作表需求)添加jar包:1.3.功能页面显示(1)登录窗口可选择四种方式进行信息初始化。例如这里选择数据库登录(2)功能窗口1.显示刚才从数据库读的数据窗口拖动,也可设置表格不透明2.添加(修改)信息,输入数据后点击添加(修改)对比...

说明:
1.期末结课做的简易的学生管理系统(java+mysql+excel+文本);
2.仅实现增删改查,显示,存储等界面操作;

实验报告如下:

1.数据库
java学生管理系统(增删改查存)

2.需要添加额外的jar包(连接数据库或者工作表需求)
java学生管理系统(增删改查存)
添加jar包:
1.java学生管理系统(增删改查存)

3.功能页面显示
(1)登录窗口
java学生管理系统(增删改查存)

可选择四种方式进行信息初始化。例如这里选择数据库登录
java学生管理系统(增删改查存)

(2)功能窗口
java学生管理系统(增删改查存)

1.显示刚才从数据库读的数据
java学生管理系统(增删改查存)

窗口拖动,也可设置表格不透明
java学生管理系统(增删改查存)

2.添加(修改)信息,输入数据后点击添加(修改)
java学生管理系统(增删改查存)

对比
java学生管理系统(增删改查存)

3.仅输入编号,进行删除或者查询操作
例如输入编号1
java学生管理系统(增删改查存)

4.存储功能,退出系统前有三种方式进行存储,也可以不存储。
例如点击文本,数据存在D盘的一个文本上。
java学生管理系统(增删改查存)

查看文本
java学生管理系统(增删改查存)

5.用到的函数(分为界面部分和数据部分)
java学生管理系统(增删改查存)
不想使用的功能删掉对应函数。
6.一开始用到的图片及文本,表格
java学生管理系统(增删改查存)

7.源码及相关代码(函数太多,这里列出三个主要界面)
Login.java


```java
public class Login extends JFrame implements ActionListener,ItemListener {
    JPanel p1, p2, p3,p4;
    JTextField Mysqltext = new JTextField(10);
    JLabel usename = new JLabel("账 号:");
    JTextField usenametext = new JTextField(10);
    JLabel password = new JLabel("密 码:");
    JPasswordField txtPwd = new JPasswordField(10);
    //角色标签和下拉列表
    JLabel role = new JLabel("打开方式:");
    JComboBox boxrole = new JComboBox();

    //创建三个选择按钮
    JButton a = new JButton("登录");
    JButton b = new JButton("重置");
    JButton c = new JButton("取消");

    //定义变量来接收下拉列表的索引
    int index = 0;
    Data_1 x = new Data_1();
    Data_1[] y = x.getA();
    Data data=new Data();
    public Login() {        //构造方法
        super("登录");
        for (int i = 0; i < x.getOne(); i++)
            y[i] = new Data_1("", "", "", "");

        setLayout(new FlowLayout());
        this.setLayout(new GridLayout(4,1));//四分
        setBounds(300, 50, 300, 500);
        //面板初始化
        p1=new JPanel();
        p2=new JPanel();
        p3=new JPanel();
        p4=new JPanel();
        p1.setBackground(new Color(255,240,240));
        p1.setBackground(null);
        p1.setOpaque(false);
        p2.setBackground(new Color(255,240,240));
        p2.setBackground(null);
        p2.setOpaque(false);
        p3.setBackground(new Color(255,240,240));
        p3.setBackground(null);
        p3.setOpaque(false);
        p4.setBackground(new Color(255,240,240));
        p4.setBackground(null);
        p4.setOpaque(false);
        //下拉列表中添加数据
        boxrole.addItem("无");
        boxrole.addItem("文本");
        boxrole.addItem("数据库");
        boxrole.addItem("Excel");
        boxrole.setOpaque(false);
        p1.add(role);
        p1.add(boxrole);
        Mysqltext.setOpaque(false);
        p1.add(Mysqltext);

        usenametext.setOpaque(false);
        p2.add(usename);
        p2.add(usenametext);

        //3.密码
        txtPwd.setOpaque(false);
        p3.add(password);
        p3.add(txtPwd);
        //4.将3个按钮添加进面板3中
        a.setContentAreaFilled(false);
        b.setContentAreaFilled(false);
        c.setContentAreaFilled(false);

        p4.add(a);
        p4.add(b);
        p4.add(c);

        //将四个面板添加进框架容器中
        this.add(p1);
        this.add(p2);
        this.add(p3);
        this.add(p4);
        //设置背景图片
        ImageIcon ic = new ImageIcon("D:\\dog4.jpg");
        JLabel l = new JLabel(ic);
        l.setBounds(0, 0, ic.getIconWidth(), ic.getIconHeight());
        this.getLayeredPane().add(l, new Integer(Integer.MIN_VALUE));
        ((JPanel) this.getContentPane()).setOpaque(false);//设置透明

        //设置顶层容器的大小、位置、可见性及close功能
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);

        //注册事件监听器
        boxrole.addItemListener(this);
        a.addActionListener(this);
        b.addActionListener(this);
        c.addActionListener(this);
    }
    //对下拉列表的监听
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED) {
            JComboBox j = (JComboBox) e.getSource();
            index = j.getSelectedIndex();
            if(index==1)
            {
                Mysqltext.setText("");
                Mysqltext.setText("text");
            }
            if(index==2)
            {
                Mysqltext.setText("");
                usenametext.setText("");
                txtPwd.setText("");
                Mysqltext.setText("list");
                usenametext.setText("root");
                txtPwd.setText("root123");
            }
            if(index==3)
            {
                Mysqltext.setText("");
                Mysqltext.setText("excel");
            }
        }
    }
   //对按钮的监听
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        String un;
        String pw;
        boolean success = false;  //用于判断是否登录成功
        //连接文本
        if (source==a&&index==0)
        {
            this.dispose();
            Mysqltext.setText("");
            usenametext.setText("");
            txtPwd.setText("");
            Login_Interface login_interface=new Login_Interface();
            login_interface.init();
        }
        if (source==a&&index==1)
        {
            if (Mysqltext.getText().equals("")) {  //判断表名为空
                JOptionPane.showMessageDialog(null, "文件名不能为空!");
            }
            else {
                data.setText(Mysqltext.getText());
                this.dispose();
                Connect_Text connect_text=new Connect_Text();
                connect_text.readFile();
                Login_Interface login_interface=new Login_Interface();
                login_interface.init();
            }
        }
        if (source == a&&index==2) {  //如果事件源是“确定”按钮
            if (usenametext.getText().equals("") || txtPwd.getText().equals("")) {  //判断用户名和密码是否为空
                JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");
            }
            else{
                this.dispose();
                data=new Data(Mysqltext.getText(),usenametext.getText(),txtPwd.getText());
                Connect_Mysql connect_mysql=new Connect_Mysql();
                connect_mysql.readMysql();
                Login_Interface login_interface=new Login_Interface();
                login_interface.init();
            }
        }
        //连接Excel表
        if (source==a&&index==3) 
        {
            if (Mysqltext.getText().equals("")) {  //判断表名为空
                JOptionPane.showMessageDialog(null, "Excel表名不能为空!");
            }
            else {
                data.setExcel(Mysqltext.getText());
                this.dispose();
                Connect_Excel connect_excel=new Connect_Excel();
                connect_excel.init();
                Login_Interface login_interface=new Login_Interface();
                login_interface.init();
            }
        }
        if(source==b) {   //如果事件源是“重置”按钮
            Mysqltext.setText("");
            usenametext.setText("");
            txtPwd.setText("");
        }
        if(source==c) {   //如果事件源是“取消”按钮
            this.dispose();
        }
        }
    }

功能界面Login_interface.java

public class Login_Interface extends JFrame {
    static int x=0;
    static int y=0;
    static JScrollPane scrollPane = new JScrollPane();
    static LocalTime localTime=LocalTime.now();
    static Data_1 data_1=new Data_1();
    static DefaultTableModel dtm=new DefaultTableModel(
                new Object[][] { {localTime.format(data_1.Data_1()),"登录","0","Yes" },
    },
            new String[] { "时间", "类型", "编号", "Y/N" });
    public Login_Interface() {
    }
    //登录界面初始化
    public DefaultTableModel init1()
    {
        return this.dtm;
    }
    public void init() {
        //获取当前时间
        //System.out.println(localTime.format(dataTimeFormatter));
        JFrame frame = new JFrame("学生管理系统");
        frame.setLayout(null);
        //历史记录界面
        JPanel contentPane;
        JTable table;
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        frame.setContentPane(contentPane);
        contentPane.setLayout(null);
        scrollPane.setBackground(null);
        scrollPane.setOpaque(false);//设置记录窗口的背景
        scrollPane.getViewport().setOpaque(false);//设置表格背景色

        scrollPane.setBounds(400, 40, 300, 400);//设置表格在窗口的位置
        contentPane.add(scrollPane);
        table = new JTable(){//初始化table
            private static final long serialVersionUID = 1L;
            public Component prepareRenderer(TableCellRenderer ren, int row, int column) {
                Component c = super.prepareRenderer(ren, row, column);
                if (c instanceof JComponent) {
                    ((JComponent) c).setOpaque(false);
                }
                return c;
            }
        };
        table.setModel(dtm);
        //table.setBounds(100, 100, 400, 400);
        table.setBackground(null);
        table.setOpaque(false);//设置记录窗口的背景
        table.setRowHeight(20);
        table.getColumnModel().getColumn(0).setPreferredWidth(20);
        table.getColumnModel().getColumn(1).setPreferredWidth(20);
        table.getColumnModel().getColumn(2).setPreferredWidth(20);
        table.getColumnModel().getColumn(3).setPreferredWidth(20);
        //设置滚动面板视口大小
        table.setPreferredScrollableViewportSize(new Dimension(300, 400));
        scrollPane.setPreferredSize(new Dimension(300, 400));
        // 设置自动出现滚动条
        scrollPane.setAutoscrolls(true);
        scrollPane.setViewportView(table);
        //文本框
        JLabel a = new JLabel("编号:");
        a.setBounds(150, 40, 100, 25);
        frame.add(a);
        JTextField aa = new JTextField();
        aa.setBounds(200, 40, 150, 25);
        frame.add(aa);

        JLabel b = new JLabel("学号:");
        b.setBounds(150, 90, 100, 25);
        frame.add(b);
        JTextField bb = new JTextField();
        bb.setBounds(200, 90, 150, 25);
        frame.add(bb);

        JLabel  c= new JLabel("姓名:");
        c.setBounds(150, 140, 100, 25);
        frame.add(c);
        JTextField  cc= new JTextField();
        cc.setBounds(200, 140, 150, 25);
        frame.add(cc);

        JLabel  d= new JLabel("性别:");
        d.setBounds(150,190 , 100, 25);
        frame.add(d);
        JTextField  dd= new JTextField();
        dd.setBounds(200, 190, 150, 25);
        frame.add(dd);

        //添加操作按钮
        JButton buttonadd = new JButton("添加");
        buttonadd.setBounds(50, 40, 70, 25);
        frame.add(buttonadd);
        JButton buttonregister = new JButton("修改");
        buttonregister.setBounds(50, 90, 70, 25);
        frame.add(buttonregister);
        //显示所有学生信息
        JButton buttonshow = new JButton("显示");
        buttonshow.setBounds(50, 140, 70, 25);
        frame.add(buttonshow);
        JButton buttonlogin = new JButton("查询");
        buttonlogin.setBounds(50, 190, 70, 25);
        frame.add(buttonlogin);
        JButton buttondelete = new JButton("删除");
        buttondelete.setBounds(50, 240, 70, 25);
        frame.add(buttondelete);
        JButton buttonbaoyang = new JButton("更多");
        buttonbaoyang.setBounds(50, 290, 70, 25);
        frame.add(buttonbaoyang);
        //存储操作
        JLabel  g= new JLabel("存储:");
        g.setBounds(50,450 , 100, 25);
        frame.add(g);
        JButton buttonText=new JButton("文本");
        buttonText.setBounds(100,470,70,25);
        frame.add(buttonText);
        JButton buttonMysql=new JButton("数据库");
        buttonMysql.setBounds(200,470,80,25);
        frame.add(buttonMysql);
        JButton buttonExcel=new JButton("Excel");
        buttonExcel.setBounds(310,470,70,25);
        frame.add(buttonExcel);
        JButton buttonEuip=new JButton("退出");
        buttonEuip.setBounds(410,470,70,25);
        frame.add(buttonEuip);
        //添加图片
        //ImageIcon image=new ImageIcon("D://xiao2.jpg");
        ImageIcon image=new ImageIcon("D://dog1.jpg");
        JLabel label=new JLabel(image);
        frame.add(label);
        label.setBounds(0, 0, 650, 540);

        frame.setBounds(300, 50, 720, 540);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        //为添加按钮添加监听器
        buttonadd.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //注册页面
                frame.setVisible(true);
                if(aa.getText().equals("")==false)
                {
                    if((bb.getText().equals("")&&cc.getText().equals("")&&dd.getText().equals(""))==false)
                    {
                        Action action=new Action();
                        action.Action1(1);
                        action.Action2(aa.getText(),bb.getText(),cc.getText(),dd.getText());
                        aa.setText("");
                        bb.setText("");
                        cc.setText("");
                        dd.setText("");
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null, "请输入完整的信息");
                    }
                }
            }
        });
        //为修改按钮添加监听器
        buttonregister.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //注册页面
                frame.setVisible(true);
                if(aa.getText().equals("")==false)
                {
                    if((bb.getText().equals("")&&cc.getText().equals("")&&dd.getText().equals(""))==false)
                    {
                        Action action=new Action();
                        action.Action1(2);
                        action.Action2(aa.getText(),bb.getText(),cc.getText(),dd.getText());
                        aa.setText("");
                        bb.setText("");
                        cc.setText("");
                        dd.setText("");
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null, "请输入完整的信息");
                    }
                }

            }
        });
        //为显示学生添加监听器
        buttonshow.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(true);
                Action action=new Action();
                action.Action1(3);
                action.Action2("");
            }
        });
        //为查询按钮添加监听器
        buttonlogin.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                frame.setVisible(true);
                if(aa.getText().equals("")==false)
                {
                    Action action=new Action();
                    action.Action1(4);
                    action.Action2(aa.getText());
                    aa.setText("");
                }
            }
        });
        //为删除按钮添加监听器
        buttondelete.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //注册页面
                frame.setVisible(true);
                frame.setVisible(true);
                if(aa.getText().equals("")==false)
                {
                    Action action=new Action();
                    action.Action1(5);
                    action.Action2(aa.getText());
                    aa.setText("");
                }

            }
        });
        //存储
        //文本
        buttonText.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(true);
                Connect_Text connect_text=new Connect_Text();
                connect_text.writeFile();
            }
        });
        //Mysql
        buttonMysql.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(true);
                Connect_Mysql connect_mysql=new Connect_Mysql();
                connect_mysql.writeMysql();
            }
        });
        //Excel
        buttonExcel.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(true);
                Connect_Excel connect_excel=new Connect_Excel();
                try {
                    connect_excel.init1();
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        });
        //退出
        buttonEuip.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
               frame.dispose();
            }
        });
        //设置表中的可移动
        scrollPane.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                x=e.getPoint().x;
                y=e.getPoint().y;
            }
        });
        scrollPane.addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                scrollPane.setBounds(e.getXOnScreen()-frame.getX()-x,e.getYOnScreen()-frame.getY()-y,300,400);
            }
        });
    }
}

显示
show.java

package student;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;

public class Show extends JFrame{
    static int x1=0;
    static int y1=0;
    static JScrollPane scrollPane = new JScrollPane();
    public Show() {
        JFrame jf = new JFrame("显示");
        jf.setUndecorated(true);//设置无框顶
        // 创建内容面板
        JPanel panel = new JPanel();
        panel.setBorder(new EmptyBorder(5, 5, 5, 5));
        panel.setLayout(null);
        // 表格所有行数据
        Data_1 x = new Data_1();
        Data_1[] y = x.getA();
        Object[][] rowData1=new Object[x.getCount()][x.getQuantity()+1];
        for(int i=0;i<x.getCount();i++)//赋值
        {
            rowData1[i][0]=i;
            for(int j=0;j<x.getQuantity();j++)
            {
                rowData1[i][j+1]=y[i].getP(j);
            }
        }
        //表头
        String[] columnNames1 = {"", "编号", "学号", "姓名", "性别"};
        //行数据
        TableModel tableModel = new DefaultTableModel(rowData1, columnNames1);
        JTable table = new JTable(rowData1, columnNames1){//设为透明
            private static final long serialVersionUID = 1L;
            public Component prepareRenderer(TableCellRenderer ren, int row, int column) {
                Component c = super.prepareRenderer(ren, row, column);
                if (c instanceof JComponent) {
                    ((JComponent) c).setOpaque(false);
                }
                return c;
            }
        };
        // 初始化表内的格式
        table.setForeground(Color.BLACK);//字体的颜色
        table.setFont(new Font(null, Font.PLAIN, 14));//字体的样式
        table.setGridColor(Color.BLACK);// 网格的颜色
        // 初始化表头的格式
        table.getTableHeader().setFont(new Font(null, Font.BOLD, 14));  // 设置表头名称字体样式
        table.getTableHeader().setForeground(Color.BLACK);// 设置表头名称字体颜色
        table.getTableHeader().setResizingAllowed(false);
        table.getTableHeader().setReorderingAllowed(false);
        // 设置行列
        table.setRowHeight(30);
        table.getColumnModel().getColumn(0).setPreferredWidth(40);
        //设置滚动面板视口大小
        table.setPreferredScrollableViewportSize(new Dimension(400, 300));
        //设置点击顶部可排序
        RowSorter<TableModel> rowSorter = new TableRowSorter<TableModel>(tableModel);
        table.setRowSorter(rowSorter);
        table.setOpaque(false);
        //初始化scrollPane
        scrollPane.setBackground(null);
        scrollPane.setOpaque(false);//设置记录窗口的背景
        scrollPane.getViewport().setOpaque(false);//设置表格背景色

        scrollPane.setBounds(150, 50, 400, 300);//设置表格在窗口的位置
        panel.add(scrollPane);

        scrollPane.setViewportView(table);
        // 添加 滚动面板 到 内容面板
        panel.add(scrollPane);

        // 设置 内容面板 到 窗口
        jf.setContentPane(panel);
        jf.pack();
        jf.setLocationRelativeTo(null);
        //按钮
        JButton buttonEuip=new JButton("退出");
        buttonEuip.setBounds(325,400,70,25);
        jf.add(buttonEuip);
        //图片
        ImageIcon image=new ImageIcon("D://dog5.jpg");
        JLabel label=new JLabel(image);
        label.setBounds(0, 0, 700, 500);
        jf.add(label);

        jf.setBounds(300, 50, 700, 500);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        jf.setVisible(true);
        //设置表中的可移动
        scrollPane.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                x1=e.getPoint().x;
                y1=e.getPoint().y;
            }
        });
        scrollPane.addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                scrollPane.setBounds(e.getXOnScreen()-jf.getX()-x1,e.getYOnScreen()-jf.getY()-y1,400,300);
            }
        });
        buttonEuip.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jf.dispose();
            }
        });
    }
}

本文地址:https://blog.csdn.net/qq_43820953/article/details/112505144

上一篇:

下一篇: