java-JTable

gs_huang

数据展示

直接通过给 JTable 设置 DefaultTableModel 来添加表头和数据信息:

1
2
3
4
5
6
7
8
9
10
11
private DefaultTableModel dtm;

private void initDataTable() {
String[] tableHeader = new String[]{"序列", "姓名", "性别", "年龄"};

dtm = new DefaultTableModel(tableHeader, 0);
dtm.addRow(new String[]{"1", "李白", "男", "20"});
dtm.addRow(new String[]{"2", "高适", "男", "20"});
dtm.addRow(new String[]{"3", "杜甫", "男", "8"});
dataTable.setModel(dtm);
}

展示效果:

java-swing-jtable-show

数据添加

1
2
3
4
private void initAddItemButton() {
String[] newRow = new String[]{addIndexField.getText(), addNameField.getText(), (String) addSexBox.getSelectedItem(), addAgeField.getText()};
dtm.addRow(newRow);
}

这里的 addIndexField、addNameField、addSexBox、addAgeField 分别代表着几个列的数据输入框或选择框。

java-swing-jtable-add

核心在于 dtm 的 addRow 方法。

数据删除

1
2
3
4
5
6
7
8
private void initDeleteButton() {
int selectedRow = dataTable.getSelectedRow();
if (selectedRow == -1) {
JOptionPane.showMessageDialog(this, "您未选中行!", "警告", JOptionPane.WARNING_MESSAGE);
return;
}
dtm.removeRow(selectedRow);
}

核心在于 dtm 的 removeRow 方法。

数据编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void initEditButton() {

if (!dataTable.isEditing()) {
JOptionPane.showMessageDialog(this, "表格未在编辑", "警告", JOptionPane.WARNING_MESSAGE);
return;
}

int editingRow = dataTable.getEditingRow();
TableCellEditor cellEditor = dataTable.getCellEditor();
cellEditor.stopCellEditing(); // 停止编辑,才能获取最新值
for (int i = 0; i < dtm.getColumnCount(); i++) {
String cellValue = String.format("%-10s", dtm.getValueAt(editingRow, i));
System.out.print(cellValue + "| ");
}
System.out.println();
}

总览

java-swing-jtable-all

  • 标题: java-JTable
  • 作者: gs_huang
  • 创建于: 2023-07-28 10:52:25
  • 更新于: 2023-08-01 13:30:14
  • 链接: https://blog.itsheng.cn/2023/07/28/Java-JTable/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论