2009-08-04 13 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()); 

つまりあなたはJXTreeTableは、階層データを表示するために使用する列のためJComboBoxを使用することはできません。

がJXTreeTableがの階層データをを表示する単一の列、および定期的なデータを表示するための他の任意の数の列からなる特殊なテーブルであり、それらは言及を有するJXTreeTable Javaのドキュメントで

JXTreeTableは、内部的にTreeTableCellEditorを作成し、階層データを表示します。

TreeTableModelあなたは、階層データ

今、あなたは最初の列で JComboBoxを提供したい場合は

を表示するために使用するcolum指定するための方法getHierarchicalColumn()を提供し、あなたが別の提供しなければならない(0番目の位置の欄には、デフォルト階層の列です) TreeTableModelを使用すると、列をシフトする必要があります(私の側から推薦されます)。

コードは、階層データ

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

プレビュー enter image description here

NOTEのための別の列を提供するために:私は、あなたが最小カスタマイズコードを使用してソリューションを実現することができるように、このソリューションを提供してきました。別の方法があるかもしれませんが、私は個人的にはこのソリューションを実装するのが非常に簡単です。