如何在 Java 中禁用 JTable 中的单元格编辑?


JTable JComponent 的子类,用于显示复杂的数据结构。JTable 可以遵循模型视图控制器 (MVC) 设计模式按行和列显示数据。JTable 可以触发 TableModelListenerTableColumnModelListenerListSelectionListenerCellEditorListener RowSorterListener 接口。默认情况下,我们可以编辑文本并在 JTable 单元格中修改文本。我们也可以通过调用 JTable 类的 editCellAt() 方法来禁用表中的单元格编辑,并且该方法必须返回false

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public final class DisableJTableMouseClickTest extends JFrame {
   private JTable table;
   private JScrollPane scrollPane;
   public DisableJTableMouseClickTest() {
      setTitle("DisableJTableMouseClick Test");
      String[] columnNames = {"Country", "Rank"};
      Object[][] data = {{"England", "1"}, {"India", "2"}, {"New Zealand", "3"}, {"Australia", "4"},       {"South Africa","5"}, {"Pakistan","6"}};
      table = new JTable(data, columnNames) {
         public boolean editCellAt(int row, int column, java.util.EventObject e) {
            return false;
         }
      };
      table.setRowSelectionAllowed(false);
      scrollPane= new JScrollPane(table);
      add(scrollPane);
      setSize(400, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new DisableJTableMouseClickTest();
   }
}

输出

更新于: 2020-02-10

4K+ 浏览次数

开启您的 职业

完成课程以获得认证

开始
广告