溫馨提示×

jtable如何修改單元格數據

小億
264
2023-11-10 16:53:30
欄目: 編程語言

要修改JTable中的單元格數據,可以使用TableModel來實現。以下是一種常見的方法:

  1. 獲取要修改的單元格的行索引和列索引。

    int row = table.getSelectedRow();
    int column = table.getSelectedColumn();
    
  2. 獲取TableModel對象。

    TableModel model = table.getModel();
    
  3. 修改單元格數據。

    model.setValueAt(newValue, row, column);
    
  4. 通知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);
    }
}

當點擊"修改"按鈕時,會彈出一個輸入對話框,輸入新的值后會修改選中單元格的數據。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女