JTableでセルデータを修正する方法

JTableのセルデータを変更するには、TableModelを使用できます。一般的な方法は次のとおりです。

  1. 获取要修改的单元格的行索引和列索引。
  2. int row = table.getSelectedRow();
    int column = table.getSelectedColumn();
  3. TableModel オブジェクトを取得します。
  4. TableModel model = table.getModel();
  5. セルデータの編集
  6. model.setValueAt(newValue, 行, 列);
  7. JTableに通知してビューを更新します。
  8. テーブル.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);
    }
}

「修正」ボタンをクリックすると、入力ダイアログが表示され、新しい値の入力を得てから、選択されたセルのデータを変更します。

bannerAds