写一个Java图书信息管理系统窗口版
时间: 2023-12-12 22:05:43 浏览: 29
好的,下面是一个简单的Java图书信息管理系统窗口版代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class BookManager extends JFrame implements ActionListener {
private JLabel titleLabel, idLabel, nameLabel, authorLabel, publisherLabel, yearLabel;
private JTextField idField, nameField, authorField, publisherField, yearField;
private JButton addButton, deleteButton, updateButton, searchButton, clearButton;
private JTextArea displayArea;
private ArrayList<Book> bookList;
public BookManager() {
super("图书信息管理系统");
// 初始化组件
titleLabel = new JLabel("图书信息管理系统", JLabel.CENTER);
titleLabel.setFont(new Font("楷体", Font.BOLD, 20));
idLabel = new JLabel("编号:");
nameLabel = new JLabel("书名:");
authorLabel = new JLabel("作者:");
publisherLabel = new JLabel("出版社:");
yearLabel = new JLabel("出版年份:");
idField = new JTextField(10);
nameField = new JTextField(10);
authorField = new JTextField(10);
publisherField = new JTextField(10);
yearField = new JTextField(10);
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("修改");
searchButton = new JButton("查找");
clearButton = new JButton("清空");
displayArea = new JTextArea(10, 30);
displayArea.setEditable(false);
// 设置布局
Container container = getContentPane();
container.setLayout(new BorderLayout());
JPanel topPanel = new JPanel(new GridLayout(1, 1));
topPanel.add(titleLabel);
container.add(topPanel, BorderLayout.NORTH);
JPanel centerPanel = new JPanel(new GridLayout(5, 2));
centerPanel.add(idLabel);
centerPanel.add(idField);
centerPanel.add(nameLabel);
centerPanel.add(nameField);
centerPanel.add(authorLabel);
centerPanel.add(authorField);
centerPanel.add(publisherLabel);
centerPanel.add(publisherField);
centerPanel.add(yearLabel);
centerPanel.add(yearField);
container.add(centerPanel, BorderLayout.CENTER);
JPanel bottomPanel = new JPanel(new FlowLayout());
bottomPanel.add(addButton);
bottomPanel.add(deleteButton);
bottomPanel.add(updateButton);
bottomPanel.add(searchButton);
bottomPanel.add(clearButton);
container.add(bottomPanel, BorderLayout.SOUTH);
JScrollPane scrollPane = new JScrollPane(displayArea);
container.add(scrollPane, BorderLayout.EAST);
// 添加事件监听
addButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
searchButton.addActionListener(this);
clearButton.addActionListener(this);
// 初始化图书列表
bookList = new ArrayList<>();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
// 添加图书
String id = idField.getText();
String name = nameField.getText();
String author = authorField.getText();
String publisher = publisherField.getText();
String year = yearField.getText();
Book book = new Book(id, name, author, publisher, year);
bookList.add(book);
displayArea.append("添加成功:" + book + "\n");
clearFields();
} else if (e.getSource() == deleteButton) {
// 删除图书
String id = idField.getText();
boolean found = false;
for (int i = 0; i < bookList.size(); i++) {
Book book = bookList.get(i);
if (book.getId().equals(id)) {
bookList.remove(i);
displayArea.append("删除成功:" + book + "\n");
found = true;
break;
}
}
if (!found) {
displayArea.append("找不到编号为" + id + "的图书\n");
}
clearFields();
} else if (e.getSource() == updateButton) {
// 修改图书
String id = idField.getText();
boolean found = false;
for (int i = 0; i < bookList.size(); i++) {
Book book = bookList.get(i);
if (book.getId().equals(id)) {
String name = nameField.getText();
String author = authorField.getText();
String publisher = publisherField.getText();
String year = yearField.getText();
book.setName(name);
book.setAuthor(author);
book.setPublisher(publisher);
book.setYear(year);
displayArea.append("修改成功:" + book + "\n");
found = true;
break;
}
}
if (!found) {
displayArea.append("找不到编号为" + id + "的图书\n");
}
clearFields();
} else if (e.getSource() == searchButton) {
// 查找图书
String id = idField.getText();
boolean found = false;
for (int i = 0; i < bookList.size(); i++) {
Book book = bookList.get(i);
if (book.getId().equals(id)) {
displayArea.append("查找成功:" + book + "\n");
found = true;
break;
}
}
if (!found) {
displayArea.append("找不到编号为" + id + "的图书\n");
}
clearFields();
} else if (e.getSource() == clearButton) {
// 清空文本框
clearFields();
}
}
private void clearFields() {
idField.setText("");
nameField.setText("");
authorField.setText("");
publisherField.setText("");
yearField.setText("");
}
public static void main(String[] args) {
BookManager bookManager = new BookManager();
bookManager.setSize(600, 400);
bookManager.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bookManager.setVisible(true);
}
}
class Book {
private String id;
private String name;
private String author;
private String publisher;
private String year;
public Book(String id, String name, String author, String publisher, String year) {
this.id = id;
this.name = name;
this.author = author;
this.publisher = publisher;
this.year = year;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
public String getPublisher() {
return publisher;
}
public String getYear() {
return year;
}
public void setName(String name) {
this.name = name;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setYear(String year) {
this.year = year;
}
@Override
public String toString() {
return "编号:" + id +
", 书名:" + name +
", 作者:" + author +
", 出版社:" + publisher +
", 出版年份:" + year;
}
}
```
这个程序使用了Java的Swing库来创建窗口界面,实现了添加、删除、修改、查找和清空等功能。运行程序后,可以在窗口中输入图书信息,然后点击相应的按钮执行相应的操作,并在显示区域中显示执行结果。