2009-08-04 10 views

Antwort

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

können Sie verwenden JComboBox für alle Spaltenzelleneditor unter Code mit Ausnahme einer Spalte, die JXTreeTable hierarchische Daten anzuzeigen verwendet.
Ex:

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

das heißt nicht JComboBox für eine Spalte verwenden können, die JXTreeTable hierarchische Daten anzuzeigen verwendet.

In JXTreeTable java doc sie, dass erwähnen,

JXTreeTable ist eine spezialisierte Tisch, bestehend aus eine einzige Spalte, in der hierarchische Daten anzuzeigen, und eine beliebige Anzahl von anderen Spalten, in denen regelmäßig Daten anzuzeigen .

JXTreeTable erstellt intern TreeTableCellEditor, das zum Anzeigen hierarchischer Daten verwendet wird.

TreeTableModel Methode bietet getHierarchicalColumn(), in dem Sie die colum verwendet zum Anzeigen hierarchischer Daten

Nun, wenn Sie zur Verfügung stellen möchten JComboBox auf den ersten Säule (0. Position Spalte ist standardmäßig hierarchische Spalte) angeben können, dann müssen Sie verschiedene bieten Spaltenindex mit TreeTableModel, ansonsten müssen Sie Ihre Spalte verschieben (empfohlen von meiner Seite).

-Code unterschiedliche Spalte für hierarchische Daten

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

Vorschau enter image description here

Hinweis zur Verfügung zu stellen: Ich zur Verfügung gestellt haben, diese Lösung, so dass Sie Ihre Lösung mit minimalem Anpassungscode erreichen können. Es kann einen anderen Weg geben, aber ich persönlich finde diese Lösung sehr einfach zu implementieren