2009-08-04 97 views

回答

2
table.getColumn(0).setCellEditor(
    new DefaultCellEditor(new JComboBox(new Object[]{"A", "B", "C"}))); 
0

可以使用细胞编辑器使用下面的代码除了其JXTreeTable用于显示的阶层数据的列的所有列中使用JComboBox
例:

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

即不能使用JComboBox为其JXTreeTable用于显示的阶层数据的列。

在他们有提到JXTreeTable Java文档,

JXTreeTable是一个专门的表组成的要在其中显示的阶层数据单个列,和任意数量的其他列在其中显示常规数据。

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

TreeTableModel提供方法getHierarchicalColumn(),可以在其中指定哪个式柱用于显示的阶层数据

现在如果你想在第一列提供JComboBox(第0位置列是由缺省分级柱)则具有以提供不同的列索引使用TreeTableModel,否则你必须移动你的列(从我身边推荐)。

代码为分层数据

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

预览 enter image description here

注意提供不同的列:我提供这个解决方案,从而可以实现以最小的定制代码的解决方案。可以有另一种方式,但我个人觉得这个解决方案很容易实现