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();