2014-01-17 93 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

相關問題