JTableでセルデータを修正する方法
JTableのセルデータを変更するには、TableModelを使用できます。一般的な方法は次のとおりです。
- 获取要修改的单元格的行索引和列索引。
- int row = table.getSelectedRow();
int column = table.getSelectedColumn(); - TableModel オブジェクトを取得します。
- TableModel model = table.getModel();
- セルデータの編集
- model.setValueAt(newValue, 行, 列);
- JTableに通知してビューを更新します。
- テーブル.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);
}
}
「修正」ボタンをクリックすると、入力ダイアログが表示され、新しい値の入力を得てから、選択されたセルのデータを変更します。