0

我有一个简单的 JTable,但是如何添加单元格选择,以便当用户用鼠标左键单击时,单元格被选中。当用户选择任何其他行中的任何其他单元格时,该单元格也会被选中。如果用户左键单击已选择的单元格,则该单元格将被取消选择。

任何提示将不胜感激,谢谢。

源头

4

2 回答 2

1

当用户选择任何其他行中的任何其他单元格时,选择的那个被选中。

  • 这对于 non_continous 单元格选择是不可能的,因为ListSelectionMode它只是二维的,

  • 可能(从未尝试过)使用custom Rendererand MouseListener,但随后必须添加 /cloneXxxTableModel并存储 a selected cell(s),模型仅包含Boolean value

于 2013-01-01T18:18:18.153 回答
1

对于这样的事情,我自己做的是创建一个 ArrayList 来存储选定的单元格。然后当您需要知道选择了哪些单元格时参考该数组。然后我创建了一个自定义单元格渲染器。在那个类中,我会检查一个单元格是否在所选单元格的 ArrayList 中,如果是,我会将其设置为表格单元格选择的颜色。

... public class MyTableCellRenderer extends DefaultTableCellRenderer
...

        //Defined in your class somewhere
        //Add column values to it when clicked on or selected   

        private final Color selectedColumn = Color.YELLOW;
        List<String> selectedCols = new ArrayList<String>(); 

        if (selectedCols.contains(cellValue)) {
            tableCell.setBackground(selectedColumn);
        } else {
            tableCell.setBackground(UIManager.getColor("Table.background"));
        }
于 2013-01-01T19:57:30.093 回答