2014-01-17 90 views
0

我正在寻找一种方法来禁止在JTable中选择或聚焦某些单元格(既不是完整的列也不是行)。例如:我有一个非常小的表,有2行和2列,我只希望细胞(0,0)和(1,1)是可选和可聚焦的,而细胞(1,0)和(0,1)不能选择或聚焦。JTable - 禁止选择和聚焦某些单元格,同时允许选择或聚焦其他单元格

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

回答

0

尝试用自定义约束覆盖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 
    } 
}; 
+0

谢谢。完美的作品。 – user3190008

相关问题