数据展示
直接通过给 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); }
|
展示效果:

数据添加
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 分别代表着几个列的数据输入框或选择框。

核心在于 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(); }
|
总览
