如何在树 table 中添加复选框
How can I add checkbox in tree table
我想创建一个包含多列的 Tree
。我找到了这个教程here (German) and this answer (English). I want to add checkboxes in one column, but I have no idea how to do it. When I return a checkbox to JTreeTable
, something show in execute is checkbox detail not checkbox object. How can I get something like this,如下图?
如 Taking the New Swing Tree Table for a Spin, cited here, your implementation of RowModel
所示,必须 return 来自 getColumnClass()
的正确类型和来自 getValueFor()
的正确值。 Boolean.class
类型的值将使用 JCheckBox
呈现。以下实现生成引用的图像:
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return Date.class;
case 1:
return Long.class;
case 2:
return Boolean.class;
case 3:
return Boolean.class;
case 4:
return Boolean.class;
default:
assert false;
}
return null;
}
@Override
public Object getValueFor(Object node, int column) {
File f = (File) node;
switch (column) {
case 0:
return new Date(f.lastModified());
case 1:
return f.length();
case 2:
return f.canRead();
case 3:
return f.canWrite();
case 4:
return f.canExecute();
default:
assert false;
}
return null;
}
I can't select checkbox.
您需要在 isCellEditable()
的实施中 return true
所需的列,并在 [=19= 的实施中更新 node
] 因此。当单元格编辑器结束时,将调用您的 setValueFor()
实现,因此请验证它是否更新了 相同的 值,该值稍后将由 [=13] 编辑 return =].或者,您需要使用 EventListenerList
API; the DefaultTreeModel
source code 中规定的方案来实现管理 TreeModelListener
列表的 TreeModel
方法,这是一个很好的例子。
我想创建一个包含多列的 Tree
。我找到了这个教程here (German) and this answer (English). I want to add checkboxes in one column, but I have no idea how to do it. When I return a checkbox to JTreeTable
, something show in execute is checkbox detail not checkbox object. How can I get something like this,如下图?
如 Taking the New Swing Tree Table for a Spin, cited here, your implementation of RowModel
所示,必须 return 来自 getColumnClass()
的正确类型和来自 getValueFor()
的正确值。 Boolean.class
类型的值将使用 JCheckBox
呈现。以下实现生成引用的图像:
@Override
public Class getColumnClass(int column) {
switch (column) {
case 0:
return Date.class;
case 1:
return Long.class;
case 2:
return Boolean.class;
case 3:
return Boolean.class;
case 4:
return Boolean.class;
default:
assert false;
}
return null;
}
@Override
public Object getValueFor(Object node, int column) {
File f = (File) node;
switch (column) {
case 0:
return new Date(f.lastModified());
case 1:
return f.length();
case 2:
return f.canRead();
case 3:
return f.canWrite();
case 4:
return f.canExecute();
default:
assert false;
}
return null;
}
I can't select checkbox.
您需要在 isCellEditable()
的实施中 return true
所需的列,并在 [=19= 的实施中更新 node
] 因此。当单元格编辑器结束时,将调用您的 setValueFor()
实现,因此请验证它是否更新了 相同的 值,该值稍后将由 [=13] 编辑 return =].或者,您需要使用 EventListenerList
API; the DefaultTreeModel
source code 中规定的方案来实现管理 TreeModelListener
列表的 TreeModel
方法,这是一个很好的例子。