访问JTable单元组件

时间:2016-04-21 19:02:35

标签: java swing jtable

好的我有一个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.


        }

    }

1 个答案:

答案 0 :(得分:1)

据推测,您的渲染器和编辑器从TableModel获取现有的选择状态,可能会更新ListSelectionModel的实例,该实例用作准备要使用的组件的一部分。您可以在stopCellEditing()的实施中更新其他模型值。您的TableModel必须为其他单元格发出合适的TableModelEvent;对于正在编辑的值,这样做。我们看到了一个相关的例子here