GUI-demo(不含DB)

bash 复制代码
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class BookManagementSystem extends JFrame {
    private DefaultTableModel tableModel;
    private JTable bookTable;
    private int selectedRowIndex = -1;

    public BookManagementSystem() {
        setTitle("图书管理系统");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        // 添加查询面板
        JPanel searchPanel = new JPanel(new FlowLayout());
        JTextField searchField = new JTextField(20);
        JButton searchButton = new JButton("查询");
        searchButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String bookName = searchField.getText();
                if (!bookName.isEmpty()) {
                    searchBook(bookName);
                }
            }
        });
        searchPanel.add(new JLabel("图书名称:"));
        searchPanel.add(searchField);
        searchPanel.add(searchButton);
        panel.add(searchPanel, BorderLayout.NORTH);

        // 创建表格模型和表格组件
        tableModel = new DefaultTableModel();
        tableModel.addColumn("图书编号");
        tableModel.addColumn("图书名称");
        tableModel.addColumn("作者");
        tableModel.addColumn("出版社");
        bookTable = new JTable(tableModel);

        // 添加双击事件监听器
        bookTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                int row = bookTable.rowAtPoint(evt.getPoint());
                int col = bookTable.columnAtPoint(evt.getPoint());
                if (row >= 0 && col >= 0 && evt.getClickCount() == 2) {
                    showBookDetails(row);
                }
            }
        });

        JScrollPane scrollPane = new JScrollPane(bookTable);
        panel.add(scrollPane, BorderLayout.CENTER);

        getContentPane().add(panel);

        // 添加按钮
        JPanel buttonPanel = new JPanel(new FlowLayout());
        JButton addButton = new JButton("添加图书");
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addOrUpdateBook(false);
            }
        });

        JButton updateButton = new JButton("修改图书");
        updateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                selectedRowIndex = bookTable.getSelectedRow();
                if (selectedRowIndex != -1) {
                    addOrUpdateBook(true);
                } else {
                    JOptionPane.showMessageDialog(null, "请选择要修改的图书。", "提示", JOptionPane.INFORMATION_MESSAGE);
                }
            }
        });

        JButton deleteButton = new JButton("删除图书");
        deleteButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = bookTable.getSelectedRow();
                if (row != -1) {
                    tableModel.removeRow(row);
                }
            }
        });

        buttonPanel.add(addButton);
        buttonPanel.add(updateButton);
        buttonPanel.add(deleteButton);
        panel.add(buttonPanel, BorderLayout.SOUTH);
    }

    private void addOrUpdateBook(boolean isUpdate) {
        JTextField nameField = new JTextField(20);
        JTextField authorField = new JTextField(20);
        JTextField publisherField = new JTextField(20);

        JPanel myPanel = new JPanel();
        myPanel.setLayout(new GridLayout(3, 2));
        myPanel.add(new JLabel("图书名称:"));
        myPanel.add(nameField);
        myPanel.add(new JLabel("作者:"));
        myPanel.add(authorField);
        myPanel.add(new JLabel("出版社:"));
        myPanel.add(publisherField);

        if (isUpdate && selectedRowIndex != -1) {
            nameField.setText((String) tableModel.getValueAt(selectedRowIndex, 1));
            authorField.setText((String) tableModel.getValueAt(selectedRowIndex, 2));
            publisherField.setText((String) tableModel.getValueAt(selectedRowIndex, 3));
        }

        int result = JOptionPane.showConfirmDialog(null, myPanel,
                isUpdate ? "修改图书信息" : "添加图书信息", JOptionPane.OK_CANCEL_OPTION);
        if (result == JOptionPane.OK_OPTION) {
            String bookName = nameField.getText();
            String author = authorField.getText();
            String publisher = publisherField.getText();

            if (bookName.isEmpty() || author.isEmpty() || publisher.isEmpty()) {
                JOptionPane.showMessageDialog(null, "请输入完整的图书信息。", "提示", JOptionPane.ERROR_MESSAGE);
                return;
            }

            if (isUpdate && selectedRowIndex != -1) {
                tableModel.setValueAt(bookName, selectedRowIndex, 1);
                tableModel.setValueAt(author, selectedRowIndex, 2);
                tableModel.setValueAt(publisher, selectedRowIndex, 3);
                selectedRowIndex = -1;
            } else {
                Vector<String> row = new Vector<>();
                row.add(String.valueOf(tableModel.getRowCount() + 1));
                row.add(bookName);
                row.add(author);
                row.add(publisher);
                tableModel.addRow(row);
            }
        }
    }

    private void searchBook(String bookName) {
        Vector<String> booksFound = new Vector<>();
        for (int i = 0; i < tableModel.getRowCount(); i++) {
            String name = (String) tableModel.getValueAt(i, 1);
            if (name.equals(bookName)) {
                showBookDetails(i);
                return;
            }
        }
        JOptionPane.showMessageDialog(this, "未找到该图书。", "提示", JOptionPane.INFORMATION_MESSAGE);
    }

    private void showBookDetails(int rowIndex) {
        String bookID = (String) tableModel.getValueAt(rowIndex, 0);
        String bookName = (String) tableModel.getValueAt(rowIndex, 1);
        String author = (String) tableModel.getValueAt(rowIndex, 2);
        String publisher = (String) tableModel.getValueAt(rowIndex, 3);

        StringBuilder details = new StringBuilder();
        details.append("图书编号: ").append(bookID).append("\n");
        details.append("图书名称: ").append(bookName).append("\n");
        details.append("作者: ").append(author).append("\n");
        details.append("出版社: ").append(publisher).append("\n");

        JOptionPane.showMessageDialog(this, details.toString(), "图书详细信息", JOptionPane.INFORMATION_MESSAGE);
    }

    private void editBook(int row) {
        selectedRowIndex = row;
        addOrUpdateBook(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new BookManagementSystem().setVisible(true);
            }
        });
    }
}

666

bash 复制代码
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class InventoryManagementSystem extends JFrame {
    private DefaultTableModel tableModel;
    private JTable inventoryTable;
    private int selectedRowIndex = -1;

    public InventoryManagementSystem() {
        setTitle("出入库管理系统");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        // 添加查询面板
        JPanel searchPanel = new JPanel(new FlowLayout());
        JTextField searchField = new JTextField(20);
        JButton searchButton = new JButton("查询");
        searchButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String itemName = searchField.getText();
                if (!itemName.isEmpty()) {
                    searchItem(itemName);
                }
            }
        });
        searchPanel.add(new JLabel("物品名称:"));
        searchPanel.add(searchField);
        searchPanel.add(searchButton);
        panel.add(searchPanel, BorderLayout.NORTH);

        // 创建表格模型和表格组件
        tableModel = new DefaultTableModel();
        tableModel.addColumn("编号");
        tableModel.addColumn("名称");
        tableModel.addColumn("数量");
        inventoryTable = new JTable(tableModel);

        JScrollPane scrollPane = new JScrollPane(inventoryTable);
        panel.add(scrollPane, BorderLayout.CENTER);

        getContentPane().add(panel);

        // 添加按钮
        JPanel buttonPanel = new JPanel(new FlowLayout());
        JButton addButton = new JButton("添加物品");
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addOrUpdateItem(false);
            }
        });

        JButton updateButton = new JButton("修改物品");
        updateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                selectedRowIndex = inventoryTable.getSelectedRow();
                if (selectedRowIndex != -1) {
                    addOrUpdateItem(true);
                } else {
                    JOptionPane.showMessageDialog(null, "请选择要修改的物品。", "提示", JOptionPane.INFORMATION_MESSAGE);
                }
            }
        });

        JButton deleteButton = new JButton("删除物品");
        deleteButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = inventoryTable.getSelectedRow();
                if (row != -1) {
                    tableModel.removeRow(row);
                }
            }
        });

        buttonPanel.add(addButton);
        buttonPanel.add(updateButton);
        buttonPanel.add(deleteButton);
        panel.add(buttonPanel, BorderLayout.SOUTH);
    }

    private void addOrUpdateItem(boolean isUpdate) {
        JTextField idField = new JTextField(10);
        JTextField nameField = new JTextField(10);
        JTextField quantityField = new JTextField(10);

        JPanel myPanel = new JPanel();
        myPanel.setLayout(new GridLayout(3, 2));
        myPanel.add(new JLabel("编号:"));
        myPanel.add(idField);
        myPanel.add(new JLabel("名称:"));
        myPanel.add(nameField);
        myPanel.add(new JLabel("数量:"));
        myPanel.add(quantityField);

        if (isUpdate) {
            idField.setText((String) tableModel.getValueAt(selectedRowIndex, 0));
            nameField.setText((String) tableModel.getValueAt(selectedRowIndex, 1));
            quantityField.setText((String) tableModel.getValueAt(selectedRowIndex, 2));
        }

        int result = JOptionPane.showConfirmDialog(null, myPanel,
                isUpdate ? "修改物品信息" : "添加物品信息", JOptionPane.OK_CANCEL_OPTION);
        if (result == JOptionPane.OK_OPTION) {
            String itemID = idField.getText();
            String itemName = nameField.getText();
            String itemQuantity = quantityField.getText();

            if (itemID.isEmpty() || itemName.isEmpty() || itemQuantity.isEmpty()) {
                JOptionPane.showMessageDialog(null, "请填写完整的物品信息。", "提示", JOptionPane.ERROR_MESSAGE);
                return;
            }

            if (isUpdate) {
                tableModel.setValueAt(itemID, selectedRowIndex, 0);
                tableModel.setValueAt(itemName, selectedRowIndex, 1);
                tableModel.setValueAt(itemQuantity, selectedRowIndex, 2);
                selectedRowIndex = -1;
            } else {
                Vector<String> row = new Vector<>();
                row.add(itemID);
                row.add(itemName);
                row.add(itemQuantity);
                tableModel.addRow(row);
            }
        }
    }

    private void searchItem(String itemName) {
        for (int i = 0; i < tableModel.getRowCount(); i++) {
            String name = (String) tableModel.getValueAt(i, 1);
            if (name.equals(itemName)) {
                String itemID = (String) tableModel.getValueAt(i, 0);
                String itemQuantity = (String) tableModel.getValueAt(i, 2);
                JOptionPane.showMessageDialog(this, "编号: " + itemID + "\n名称: " + itemName + "\n数量: " + itemQuantity, "物品信息", JOptionPane.INFORMATION_MESSAGE);
                return;
            }
        }
        JOptionPane.showMessageDialog(this, "未找到该物品。", "提示", JOptionPane.INFORMATION_MESSAGE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new InventoryManagementSystem().setVisible(true);
            }
        });
    }
}

666

bash 复制代码
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

public class StudentManagementSystem extends JFrame {
    private DefaultTableModel tableModel;
    private JTable studentTable;
    private int selectedRowIndex = -1;

    public StudentManagementSystem() {
        setTitle("学生管理系统");
        setSize(800, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        // 添加查询面板
        JPanel searchPanel = new JPanel(new FlowLayout());
        JTextField searchField = new JTextField(20);
        JButton searchButton = new JButton("查询");
        searchButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String studentName = searchField.getText();
                if (!studentName.isEmpty()) {
                    searchStudent(studentName);
                }
            }
        });
        searchPanel.add(new JLabel("学生姓名:"));
        searchPanel.add(searchField);
        searchPanel.add(searchButton);
        panel.add(searchPanel, BorderLayout.NORTH);

        // 创建表格模型和表格组件
        tableModel = new DefaultTableModel();
        tableModel.addColumn("学号");
        tableModel.addColumn("姓名");
        tableModel.addColumn("年龄");
        tableModel.addColumn("性别");
        tableModel.addColumn("成绩");
        studentTable = new JTable(tableModel);

        // 添加双击事件监听器
        studentTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                int row = studentTable.rowAtPoint(evt.getPoint());
                int col = studentTable.columnAtPoint(evt.getPoint());
                if (row >= 0 && col >= 0 && evt.getClickCount() == 2) {
                    showStudentDetails(row);
                }
            }
        });

        JScrollPane scrollPane = new JScrollPane(studentTable);
        panel.add(scrollPane, BorderLayout.CENTER);

        getContentPane().add(panel);

        // 添加按钮
        JPanel buttonPanel = new JPanel(new FlowLayout());
        JButton addButton = new JButton("添加学生");
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addOrUpdateStudent(false);
            }
        });

        JButton updateButton = new JButton("修改学生");
        updateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                selectedRowIndex = studentTable.getSelectedRow();
                if (selectedRowIndex != -1) {
                    addOrUpdateStudent(true);
                } else {
                    JOptionPane.showMessageDialog(null, "请选择要修改的学生。", "提示", JOptionPane.INFORMATION_MESSAGE);
                }
            }
        });

        JButton deleteButton = new JButton("删除学生");
        deleteButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int row = studentTable.getSelectedRow();
                if (row != -1) {
                    tableModel.removeRow(row);
                }
            }
        });

        buttonPanel.add(addButton);
        buttonPanel.add(updateButton);
        buttonPanel.add(deleteButton);
        panel.add(buttonPanel, BorderLayout.SOUTH);
    }

    private void addOrUpdateStudent(boolean isUpdate) {
        JTextField idField = new JTextField(10);
        JTextField nameField = new JTextField(10);
        JTextField ageField = new JTextField(10);
        JTextField genderField = new JTextField(10);
        JTextField scoreField = new JTextField(10);

        JPanel myPanel = new JPanel();
        myPanel.setLayout(new GridLayout(5, 2));
        myPanel.add(new JLabel("学号:"));
        myPanel.add(idField);
        myPanel.add(new JLabel("姓名:"));
        myPanel.add(nameField);
        myPanel.add(new JLabel("年龄:"));
        myPanel.add(ageField);
        myPanel.add(new JLabel("性别:"));
        myPanel.add(genderField);
        myPanel.add(new JLabel("成绩:"));
        myPanel.add(scoreField);

        if (isUpdate) {
            idField.setText((String) tableModel.getValueAt(selectedRowIndex, 0));
            nameField.setText((String) tableModel.getValueAt(selectedRowIndex, 1));
            ageField.setText((String) tableModel.getValueAt(selectedRowIndex, 2));
            genderField.setText((String) tableModel.getValueAt(selectedRowIndex, 3));
            scoreField.setText((String) tableModel.getValueAt(selectedRowIndex, 4));
        }

        int result = JOptionPane.showConfirmDialog(null, myPanel,
                isUpdate ? "修改学生信息" : "添加学生信息", JOptionPane.OK_CANCEL_OPTION);
        if (result == JOptionPane.OK_OPTION) {
            String studentID = idField.getText();
            String studentName = nameField.getText();
            String studentAge = ageField.getText();
            String studentGender = genderField.getText();
            String studentScore = scoreField.getText();

            if (studentID.isEmpty() || studentName.isEmpty() || studentAge.isEmpty() ||
                    studentGender.isEmpty() || studentScore.isEmpty()) {
                JOptionPane.showMessageDialog(null, "请填写完整的学生信息。", "提示", JOptionPane.ERROR_MESSAGE);
                return;
            }

            if (isUpdate) {
                tableModel.setValueAt(studentID, selectedRowIndex, 0);
                tableModel.setValueAt(studentName, selectedRowIndex, 1);
                tableModel.setValueAt(studentAge, selectedRowIndex, 2);
                tableModel.setValueAt(studentGender, selectedRowIndex, 3);
                tableModel.setValueAt(studentScore, selectedRowIndex, 4);
                selectedRowIndex = -1;
            } else {
                Vector<String> row = new Vector<>();
                row.add(studentID);
                row.add(studentName);
                row.add(studentAge);
                row.add(studentGender);
                row.add(studentScore);
                tableModel.addRow(row);
            }
        }
    }

    private void searchStudent(String studentName) {
        for (int i = 0; i < tableModel.getRowCount(); i++) {
            String name = (String) tableModel.getValueAt(i, 1);
            if (name.equals(studentName)) {
                showStudentDetails(i);
                return;
            }
        }
        JOptionPane.showMessageDialog(this, "未找到该学生。", "提示", JOptionPane.INFORMATION_MESSAGE);
    }

    private void showStudentDetails(int rowIndex) {
        String studentID = (String) tableModel.getValueAt(rowIndex, 0);
        String studentName = (String) tableModel.getValueAt(rowIndex, 1);
        String studentAge = (String) tableModel.getValueAt(rowIndex, 2);
        String studentGender = (String) tableModel.getValueAt(rowIndex, 3);
        String studentScore = (String) tableModel.getValueAt(rowIndex, 4);

        StringBuilder details = new StringBuilder();
        details.append("学号: ").append(studentID).append("\n");
        details.append("姓名: ").append(studentName).append("\n");
        details.append("年龄: ").append(studentAge).append("\n");
        details.append("性别: ").append(studentGender).append("\n");
        details.append("成绩: ").append(studentScore).append("\n");

        JOptionPane.showMessageDialog(this, details.toString(), "学生详细信息", JOptionPane.INFORMATION_MESSAGE);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new StudentManagementSystem().setVisible(true);
            }
        });
    }
}
相关推荐
锐策1 分钟前
〔 MySQL 〕数据库基础
数据库·mysql
远歌已逝1 小时前
管理Oracle实例(二)
数据库·oracle
日月星宿~1 小时前
【MySQL】summary
数据库·mysql
爱吃土豆的程序员1 小时前
在oracle官网下载资源显示400 Bad Request Request Header Or Cookie Too Large 解决办法
java·数据库·oracle·cookie
睿思达DBA_WGX1 小时前
Oracle 11g rac 集群节点的修复过程
数据库·oracle
尘浮生1 小时前
Java项目实战II基于微信小程序的移动学习平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·学习·微信小程序·小程序
Leo.yuan2 小时前
数据量大Excel卡顿严重?选对报表工具提高10倍效率
数据库·数据分析·数据可视化·powerbi
Runing_WoNiu3 小时前
MySQL与Oracle对比及区别
数据库·mysql·oracle
天道有情战天下3 小时前
mysql锁机制详解
数据库·mysql
看山还是山,看水还是。3 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率