java弹窗表格将文件的书存入表格实现管理员对书籍的添加和打印,不用数据库
时间: 2024-03-16 19:43:47 浏览: 59
首先,您需要使用Java GUI库(如Swing)创建一个弹窗表格窗口。然后,您可以使用Java文件读写API(如BufferedReader和FileWriter)从文件中读取和写入数据。
以下是一个简单的示例代码,可以将文件中的书籍数据存储到表格中:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BookTable extends JFrame {
private JTable table;
public BookTable() {
// 设置表格模型
DefaultTableModel model = new DefaultTableModel();
model.addColumn("书名");
model.addColumn("作者");
model.addColumn("价格");
// 从文件中读取数据
try {
BufferedReader reader = new BufferedReader(new FileReader("books.txt"));
String line = reader.readLine();
while (line != null) {
String[] parts = line.split(",");
model.addRow(parts);
line = reader.readLine();
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
// 创建表格
table = new JTable(model);
// 创建添加按钮
JButton addButton = new JButton("添加");
addButton.addActionListener((event) -> {
// 创建输入对话框
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);
if (result == JOptionPane.OK_OPTION) {
// 添加数据到表格
String[] row = {nameField.getText(), authorField.getText(), priceField.getText()};
model.addRow(row);
// 写入数据到文件
try {
FileWriter writer = new FileWriter("books.txt", true);
writer.write(String.join(",", row) + "\n");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
});
// 创建打印按钮
JButton printButton = new JButton("打印");
printButton.addActionListener((event) -> {
// 打印表格
try {
table.print();
} catch (Exception e) {
e.printStackTrace();
}
});
// 创建工具栏
JToolBar toolbar = new JToolBar();
toolbar.setFloatable(false);
toolbar.add(addButton);
toolbar.add(printButton);
// 创建主面板
JPanel panel = new JPanel(new BorderLayout());
panel.add(toolbar, BorderLayout.NORTH);
panel.add(new JScrollPane(table), BorderLayout.CENTER);
// 设置窗口属性
setTitle("书籍管理");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(400, 300));
setContentPane(panel);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new BookTable();
}
}
```
在此示例中,我们使用了一个文件 `books.txt` 来存储书籍数据,每行包含书名、作者和价格,以逗号分隔。在表格中,每行对应一个书籍数据。
用户可以通过点击添加按钮来打开一个输入对话框,输入新书籍的数据。输入完成后,程序将数据添加到表格中,并将数据写入文件。用户可以通过点击打印按钮来打印表格。
请注意,这个示例程序并不具有完整的错误处理和数据校验机制,您可以根据需要进行扩展。
阅读全文