Java 访问JTable单元组件

Java 访问JTable单元组件,java,swing,jtable,Java,Swing,Jtable,好的,我有一个JTable,我在每个单元格上显示一个JList。为此,我必须实现TableCellRenderer并扩展DefaultCellEditor。在这里,我返回要在GUI中呈现的实际JList 我想做的是,当用户从JList取消选择一个项目时,我还想从单击的列开始取消选择该表行所有JLists的所有项目 我的问题是,我无法找到一种方法来取消选择当前单击的表列之后的所有项。我只能访问这个DefaultListModel。我想我需要访问实际的JList才能删除所有选定的项目 下面是我正在使

好的,我有一个JTable,我在每个单元格上显示一个JList。为此,我必须实现TableCellRenderer并扩展DefaultCellEditor。在这里,我返回要在GUI中呈现的实际JList

我想做的是,当用户从JList取消选择一个项目时,我还想从单击的列开始取消选择该表行所有JLists的所有项目

我的问题是,我无法找到一种方法来取消选择当前单击的表列之后的所有项。我只能访问这个DefaultListModel。我想我需要访问实际的JList才能删除所有选定的项目

下面是我正在使用的方法。有什么办法吗?谢谢

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.


        }

    }
public void取消选择fromLocation(int行,int列){
DefaultTableModel dtm=(DefaultTableModel)table1.getModel();
int cols=dtm.getColumnCount();

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

从我的发布方法中取消选择其他列表模型时,我触发了错误的事件。您是对的,它可以从stopCellEditing()中工作.我刚刚在上面的方法中添加了这一行,它在dtm.fireTableCellUpdated(row_,I)中起了作用;感谢您为我指明了正确的方向。