JXTreeTable和JComboBox单元格编辑器

时间:2009-08-04 10:50:32

标签: java jcombobox jxtable jxtreetable

如何在JXTreeTable中使用JComboBox作为单元格编辑器?你能告诉我一个有效的例子吗?

2 个答案:

答案 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;
    }
 });

预览 enter image description here

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

相关问题