2010-06-10 71 views
1

我需要一個Swing組件,它可以讓我顯示一個樹形結構的項目列表,並允許用戶選擇或取消選擇這些項目的任意子集,通過挑選該子樹的父項來選擇或取消選擇整個子樹的組件價值。 (基本上類似於Eclipse的「導出JAR文件的」對話的東西(相關對話框的圖像是here - 我基本上要「選擇資源出口」成分,但對於一個Swing應用程序)如何在Swing中實現分層的「選擇樹」? (或者:是否有現有的實現?)

alt text http://i40.tinypic.com/6ylbvr.jpg

我知道我可以通過創建一個自定義的TreeCellRenderer,一個自定義的TreeCellEditor和一個自定義的TreeModel來做到這一點 - 但這看起來像是一個非常多的工作。是否有任何可以使用的現成的實現?

謝謝!

回答

2

你也可以看看JIDE components看看他們是否有類似的東西。

+1

JIDE Common圖層包含CheckBoxTree並且是開源的。 – Mark 2010-06-10 20:52:59

+0

Bingo - CheckBoxTree *正是*我所需要的。謝謝! – Sbodd 2010-06-11 16:55:06

1

聽起來就像你在說話ab出JTree。它通常用於顯示分層數據,如文件結構,但可以修改它以完成其他操作。

http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html

http://java.sun.com/javase/6/docs/api/javax/swing/JTree.html

+0

看起來疲憊不堪,而我甚至沒有看到你已經標記了jTree。據我所知這是做這件事的最好方法。很抱歉告訴你一些你已經知道的事情。 – Mike 2010-06-10 18:18:54

+0

傳統+1;鏈接已更新。 – trashgod 2010-06-10 18:30:51

+0

:)這不是傳統,谷歌每次給你1.4的結果(因爲他們更連接我猜)替換's/1.4.2/6'使用給你404,但我猜Sun(嘆氣,甲骨文)注意到趨勢,現在將您重定向到正確的一個。 :...只是...如果有人想知道:P – OscarRyz 2010-06-10 18:38:01

1

我會考慮NetBeans的Outline。因爲它從JTable下降,所以您可以指定包含子樹和葉節點的多個選擇。

outline.getSelectionModel().setSelectionMode(
    ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); 

附錄:看看你的照片,你可能可以使用CheckRenderDataProvider

+0

+1代替:P – OscarRyz 2010-06-10 18:39:22