java弹窗表格将文件的书存入表格实现管理员对书籍的存放和修改,不用数据库
时间: 2024-03-16 07:43:42 浏览: 27
要将文件中的书籍信息存入表格中,可以使用Java的文件读写功能来读取文件中的书籍信息,然后将其添加到表格中。以下是一个简单的示例代码:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class BookManager {
public static void main(String[] args) {
JFrame frame = new JFrame("Book Manager");
frame.setSize(500, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个表格
String[] columnNames = {"书籍名称", "作者", "价格"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
JTable table = new JTable(model);
// 读取文件中的书籍信息,添加到表格中
try {
BufferedReader reader = new BufferedReader(new FileReader("books.txt"));
String line;
while ((line = reader.readLine()) != null) {
String[] bookInfo = line.split(",");
model.addRow(new Object[]{bookInfo[0], bookInfo[1], bookInfo[2]});
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
// 创建一个滚动窗格,将表格放入其中
JScrollPane scrollPane = new JScrollPane(table);
// 创建一个按钮,用于添加书籍
JButton addButton = new JButton("添加书籍");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 创建一个弹窗,用于输入书籍信息
JTextField nameField = new JTextField();
JTextField authorField = new JTextField();
JTextField priceField = new JTextField();
JPanel panel = new JPanel(new GridLayout(0, 1));
panel.add(new JLabel("书籍名称:"));
panel.add(nameField);
panel.add(new JLabel("作者:"));
panel.add(authorField);
panel.add(new JLabel("价格:"));
panel.add(priceField);
int result = JOptionPane.showConfirmDialog(null, panel, "添加书籍", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
// 获取输入的书籍信息
String name = nameField.getText();
String author = authorField.getText();
String price = priceField.getText();
// 将书籍信息添加到表格中
model.addRow(new Object[]{name, author, price});
// 将书籍信息写入文件
try {
FileWriter writer = new FileWriter("books.txt", true);
writer.write(name + "," + author + "," + price + "\n");
writer.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
});
// 创建一个面板,将按钮放入其中
JPanel buttonPanel = new JPanel();
buttonPanel.add(addButton);
// 将滚动窗格和面板放入窗口中
frame.add(scrollPane, BorderLayout.CENTER);
frame.add(buttonPanel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
```
在这个示例代码中,我们在程序启动时读取了文件中的书籍信息,并将其添加到表格中。在添加书籍时,我们将书籍信息添加到表格中,并将其写入文件中。你可以根据这个示例代码进行修改,以满足你的需求。