猿问

JTable中的多行选择

JTable中的多行选择

我有一个JTable,它有一个列是不可编辑的文本,第二个列是一个复选框,它显示布尔值.现在我想要的是,当用户选择多个行并取消选中的任何一个复选框时,选中的所有复选框都应该不选中,反之亦然。



翻阅古今
浏览 1904回答 3
3回答

潇湘沐

问题是,当您单击复选框以更改复选框的值时,所有行的选择都将丢失。因此,您可能需要使用鼠标右键显示包含SELECT/取消选择值的弹出式菜单。然后,您可以使用table.getSelectedRows()来获取需要更新的所有选定行的索引。

一只甜甜圈

您可以使用类似于以下代码的代码获得选择间隔:table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){     public void valueChanged(ListSelectionEvent e) {         minSelectedRow = ((DefaultListSelectionModel)e.getSource()).getMinSelectionIndex();         maxSelectedRow = ((DefaultListSelectionModel)e.getSource()).getMaxSelectionIndex();     }});然后,当选中一个复选框时(请听ItemEvent)应该从minSelectedRow到maxSelectedRow并更改复选框状态。就这样。
随时随地看视频慕课网APP

相关分类

Java
我要回答