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