我有一个简单的JTable但是如何添加cellselection以便当用户用鼠标点击时,选择了单元格。当用户选择任何其他行中的任何其他单元格时,也会选择该单元格。如果用户单击已选择的单元格,则该单元格将被取消选择。
非常感谢任何提示,谢谢。
Souciance
答案 0 :(得分:1)
当用户选择任何其他行中的任何其他单元格时,选择该单元格 被选中。
this not possible for non_continous cell selection,因为ListSelectionMode
只是二维的,
可以使用custom Renderer
和MouseListener
进行(从未尝试过),但是必须添加/克隆XxxTableModel
并存储selected cell(s)
,模型包含仅Boolean value
答案 1 :(得分: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"));
}