java制作表格添加书籍和删除,不用数据库
时间: 2024-03-14 14:46:04 浏览: 76
可以使用Java的Swing库来制作表格,并使用ArrayList来存储书籍数据。以下是一个简单的实现:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class BookTable extends JFrame {
private JTable table;
private DefaultTableModel model;
private ArrayList<Book> books;
public BookTable() {
super("Book Table");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化书籍列表
books = new ArrayList<Book>();
books.add(new Book("Java编程思想", "Bruce Eckel", 59.99));
books.add(new Book("Effective Java", "Joshua Bloch", 42.99));
books.add(new Book("Head First Java", "Kathy Sierra", 39.99));
// 初始化表格
model = new DefaultTableModel();
model.addColumn("书名");
model.addColumn("作者");
model.addColumn("价格");
for (Book book : books) {
model.addRow(new Object[]{book.getName(), book.getAuthor(), book.getPrice()});
}
table = new JTable(model);
// 添加表格到窗口
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 添加按钮面板到窗口
JPanel buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
// 添加“添加”按钮
JButton addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 创建添加对话框
BookDialog dialog = new BookDialog(BookTable.this, "添加书籍", null);
dialog.setVisible(true);
// 如果用户点击了“确定”按钮,则添加书籍到列表和表格
if (dialog.isOkPressed()) {
Book book = dialog.getBook();
books.add(book);
model.addRow(new Object[]{book.getName(), book.getAuthor(), book.getPrice()});
}
}
});
buttonPanel.add(addButton);
// 添加“删除”按钮
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 获取选中的行
int row = table.getSelectedRow();
if (row >= 0) {
// 从列表和表格中删除选中的书籍
books.remove(row);
model.removeRow(row);
}
}
});
buttonPanel.add(deleteButton);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {
BookTable table = new BookTable();
table.setVisible(true);
}
}
```
以上代码中,Book类表示一本书,BookDialog类表示添加/编辑书籍的对话框。在“添加”按钮的ActionListener中,我们创建一个BookDialog对话框,并将用户输入的书籍添加到列表和表格中。在“删除”按钮的ActionListener中,我们获取选中的行,然后从列表和表格中删除选中的书籍。
这个例子中使用了ArrayList来存储书籍数据,没有使用数据库。这种方式适用于小型应用程序,当需要处理大量数据时,最好使用数据库来管理数据。
阅读全文