如何在JXTreeTable
中使用JComboBox
作为单元格编辑器?你能告诉我一个有效的例子吗?
答案 0 :(得分:2)
table.getColumn(0).setCellEditor(
new DefaultCellEditor(new JComboBox(new Object[]{"A", "B", "C"})));
答案 1 :(得分:0)
除JComboBox
用于显示分层数据的列外,您可以使用以下代码对所有列使用单元格编辑器JXTreeTable
。
例如:
TableColumnExt column = this.tree.getColumnExt(1);
column.setCellEditor(new DefaultCellEditor(new JComboBox());
即。您无法将JComboBox
用于JXTreeTable
用于显示分层数据的列。
在JXTreeTable
java doc中,他们提到过,
JXTreeTable是一个专门的表格,包含显示分层数据的单个列,以及显示常规数据的任意数量的其他列。
JXTreeTable在内部创建TreeTableCellEditor
,用于显示分层数据。
TreeTableModel
提供方法getHierarchicalColumn()
,您可以在其中指定使用哪个列来显示分层数据
现在,如果你想在第一列提供JComboBox
(第0位列是默认的分层列),那么你必须使用TreeTableModel提供不同的列索引,否则你必须改变你的列(从我这边推荐)
为分层数据提供不同列的代码
this.tree = new JXTreeTable(new DefaultTreeTableModel() {
public int getHierarchicalColumn() {
return 2;
}
});
注意:我提供了此解决方案,您可以使用最少的自定义代码来实现解决方案。可以有另一种方式,但我个人觉得这个解决方案很容易实现