阅读量:7
要修改JTable中的单元格数据,可以使用TableModel来实现。以下是一种常见的方法:
获取要修改的单元格的行索引和列索引。
int row = table.getSelectedRow(); int column = table.getSelectedColumn();
获取TableModel对象。
TableModel model = table.getModel();
修改单元格数据。
model.setValueAt(newValue, row, column);
通知JTable更新视图。
table.repaint();
完整的示例代码如下:
import javax.swing.*; import javax.swing.table.DefaultTableModel; public class JTableExample { public static void main(String[] args) { String[] columnNames = {"序号", "姓名", "年龄"}; Object[][] data = { {1, "张三", 20}, {2, "李四", 25}, {3, "王五", 30} }; DefaultTableModel model = new DefaultTableModel(data, columnNames); JTable table = new JTable(model); JButton button = new JButton("修改"); button.addActionListener(e -> { int row = table.getSelectedRow(); int column = table.getSelectedColumn(); if (row != -1 && column != -1) { String newValue = JOptionPane.showInputDialog("请输入新值"); model.setValueAt(newValue, row, column); table.repaint(); } }); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new JScrollPane(table)); frame.add(button, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true); } }
当点击"修改"按钮时,会弹出一个输入对话框,输入新的值后会修改选中单元格的数据。