Java 从JXTreeTable获取所选值

Java 从JXTreeTable获取所选值,java,object,selected,tablemodel,jxtreetable,Java,Object,Selected,Tablemodel,Jxtreetable,我正在使用jxtreetable构建一个treetable,我想根据所选值禁用/able菜单项。因此,我尝试将此代码放入我的表格模型中: public Object getValueAt(int index) { if (index >= 0 && index < root.getSize()){ return root.get(index); } return null; } pu

我正在使用
jxtreetable
构建一个
treetable
,我想根据所选值禁用/able
菜单项。因此,我尝试将此代码放入我的
表格模型中

public Object getValueAt(int index) {
        if (index >= 0 && index < root.getSize()){
            return root.get(index);
        }

        return null;

    }
public对象getValueAt(int索引){
如果(索引>=0&&index
问题

仅当
的内容未展开时,上述操作才有效。因为
所选行的
索引
可能大于t
可扩展模型的
大小(模型可以有两个项目,当所有内容都展开时,行可以有10个)。此外,
父对象的
对象类型
不同于
子对象
(将章节视为子对象)


您建议如何正确执行上述操作?

视图和模型中的索引可能不同。您必须首先使用
convertRowIndextToModel()

调整所选行的索引。假设
index
是您的行号,请尝试以下操作以获取节点对象:

TreePath path = treetable.getPathForRow(index);
Object node = path.getLastPathComponent();

其中
treetable
将是指向使用此表模型的表的指针。

在JXTreeTable中,您可以根据树表中的行和节点类访问值。 例如:

int row=treeTable.getSelectedRow();
//从列中获取值
Object Object=treeTable.getValueAt(行,列);
TreePath=treeTable.getPathForRow(行);
对象o=path.getLastPathComponent();
等级
int row=treeTable.getSelectedRow();
//get value from column
Object object= treeTable.getValueAt(row, yourColumn);
TreePath path= treeTable.getPathForRow(row);
Object o= path.getLastPathComponent();
Class<? extends Object> entity=o.getClass();