2

如何JComboBox在 中用作单元格编辑器JXTreeTable?你能给我一个工作的例子吗?

4

2 回答 2

2
table.getColumn(0).setCellEditor(
    new DefaultCellEditor(new JComboBox(new Object[]{"A", "B", "C"})));
于 2010-08-02T16:27:06.110 回答
0

除了用于显示分层数据 的列之外,您可以使用JComboBox下面的代码对所有列使用单元格编辑器。 前任:JXTreeTable

    TableColumnExt column = this.tree.getColumnExt(1);
    column.setCellEditor(new DefaultCellEditor(new JComboBox());

即您不能用于用于显示分层数据JComboBox的列。JXTreeTable

JXTreeTablejava doc中,他们提到过,

JXTreeTable 是一个专门的表格,由一个用于显示分层数据的列和任意数量的用于显示常规数据的其他列组成。

JXTreeTable 在TreeTableCellEditor内部创建用于显示分层数据。

TreeTableModel提供方法getHierarchicalColumn(),您可以在其中指定用于显示分层数据的列

现在,如果您想JComboBox在第一列提供(第 0 位列默认为分层列),那么您必须使用 TreeTableModel 提供不同的列索引,否则您必须移动列(从我这边推荐)。

为分层数据提供不同列的代码

this.tree = new JXTreeTable(new DefaultTreeTableModel() {
    public int getHierarchicalColumn() {
       return 2;
    }
 });

预习 在此处输入图像描述

注意:我提供了此解决方案,以便您可以使用最少的自定义代码来实现您的解决方案。可以有另一种方式,但我个人觉得这个解决方案很容易实现

于 2016-08-27T10:11:58.423 回答