Java用DefaultTableModel创建表格,往表格添加据,实现文件保存和打开的功能
时间: 2024-02-29 11:51:34 浏览: 74
要创建一个表格,可以使用JTable组件和DefaultTableModel模型类,示例代码如下:
```java
DefaultTableModel model = new DefaultTableModel();
model.addColumn("姓名");
model.addColumn("年龄");
model.addRow(new Object[]{"张三", 20});
model.addRow(new Object[]{"李四", 25});
JTable table = new JTable(model);
```
要往表格中添加数据,可以使用model的addRow方法:
```java
model.addRow(new Object[]{"王五", 30});
```
要实现文件保存和打开的功能,可以使用JFileChooser组件来选择文件,然后使用IO流进行读写。示例代码如下:
```java
// 保存数据到文件
JFileChooser chooser = new JFileChooser();
int result = chooser.showSaveDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
try (FileWriter writer = new FileWriter(file)) {
for (int i = 0; i < model.getRowCount(); i++) {
writer.write(model.getValueAt(i, 0) + "," + model.getValueAt(i, 1) + "\n");
}
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
// 从文件中读取数据
JFileChooser chooser = new JFileChooser();
int result = chooser.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
String[] data = scanner.nextLine().split(",");
model.addRow(new Object[]{data[0], Integer.parseInt(data[1])});
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
以上代码中,保存数据的方法将表格数据按照CSV格式保存到文件中,读取数据的方法则使用Scanner读取文件内容,并将每行数据添加到表格中。
阅读全文