【问题标题】:JTable - Disallow selection and focusing of some cells while allowing others to be selected or focusedJTable - 不允许选择和聚焦某些单元格,同时允许选择或聚焦其他单元格
【发布时间】:2014-01-18 04:10:41
【问题描述】:

我正在寻找一种方法来禁止在 JTable 中选择或聚焦某些单元格(既不是完整的列也不是完整的行)。

例如:我有一个非常小的表格,有 2 行和 2 列,我只希望单元格 (0,0) 和 (1,1) 可以选择和聚焦,而单元格 (1,0) 和(0,1) 无法选择或聚焦。

有人知道如何实现这种行为吗?到目前为止,我只找到了实现自定义 ListSelectionModel 的方法。但它只适用于列或行(两种不同的模型)。

【问题讨论】:

    标签: java swing jtable focus selection


    【解决方案1】:

    尝试使用自定义约束覆盖 JTablechangeSelection 方法,您可能还需要通过覆盖 isCellEditable 来禁用编辑。例如:

    final JTable table = new JTable( data, columnNames ) {
        @Override
        public void changeSelection( int row, int col, boolean toggle, boolean expand ) {
            if( ( row + col )%2 == 0) { // here you set your own rules
                super.changeSelection( row, col, toggle, expand );
            }
        }
    
        @Override
        public boolean isCellEditable( int row, int col ) {
            return false; // disabling editing separately
        }
    };
    

    【讨论】:

      猜你喜欢
      • 2021-01-23
      • 1970-01-01
      • 2012-12-18
      • 2015-04-14
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多