我有一个简单的 JTable,但是如何添加单元格选择,以便当用户用鼠标左键单击时,单元格被选中。当用户选择任何其他行中的任何其他单元格时,该单元格也会被选中。如果用户左键单击已选择的单元格,则该单元格将被取消选择。
任何提示将不胜感激,谢谢。
源头
当用户选择任何其他行中的任何其他单元格时,选择的那个被选中。
这对于 non_continous 单元格选择是不可能的,因为ListSelectionMode
它只是二维的,
可能(从未尝试过)使用custom Renderer
and MouseListener
,但随后必须添加 /cloneXxxTableModel
并存储 a selected cell(s)
,模型仅包含Boolean value
对于这样的事情,我自己做的是创建一个 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"));
}