2009-08-04 98 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

注意提供不同的列:我提供這個解決方案,從而可以實現以最小的定製代碼的解決方案。可以有另一種方式,但我個人覺得這個解決方案很容易實現