好的我有一个JTable,我在每个单元格上显示一个JList。为此,我必须实现TableCellRenderer并扩展DefaultCellEditor。这是我返回要在GUI中呈现的实际JList的位置。
我想要做的是当用户从JList中取消选择一个项目时,我还想从所单击的列开始为该表行取消选择所有JLists的所有项目。
我的问题是,我无法找到一种方法来取消选择当前点击的表格列之后的所有项目。我可以访问的是这个DefaultListModel。我想我需要访问实际的JList才能删除所有选定的项目。
以下是方法I使用。任何想法如何做到这一点?感谢。
public void deselectFromLocation(int row_, int column_){
DefaultTableModel dtm = (DefaultTableModel) table1.getModel();
int cols = dtm.getColumnCount();
for(int i=column_; i<cols;i++){
PCSListModel lm = (PCSListModel) dtm.getValueAt(row_, i);
//How can I access the actual JList object in order to remove all selected items?
//The PCSListMode is DefaultListModel and has no access to JList object. Thanks.
}
}
答案 0 :(得分:1)
据推测,您的渲染器和编辑器从TableModel
获取现有的选择状态,可能会更新ListSelectionModel
的实例,该实例用作准备要使用的组件的一部分。您可以在stopCellEditing()
的实施中更新其他模型值。您的TableModel
必须为其他单元格发出合适的TableModelEvent
;对于正在编辑的值,不这样做。我们看到了一个相关的例子here。