2012-09-13 50 views
2

有沒有辦法創建一個具有多個(我瞄準三個)層次的JList?Java中的多層次(嵌套?)Jlist

事情是這樣的:

level 1 item 
    level 2 item 
    level 2 item 
    level 3 item 
level 1 item 
level 1 item 
    level 2 item 
    level 2 item 
    level 3 item 
    level 3 item 

我有(高達)在我的計劃三個等級組件GUI,我就需要以某種方式使用戶能組織GUI的元素,將它們移動在彼此之上或之下。

它可以用JList完成,還是有另一種處理這種事情的方式? 也許有些圖書館?

+2

使用'JTree'擺動組件。這就是你處理這種事情的方式。 – user1329572

回答

2

你可以實現自己的ListCellRenderer和你自己的ListModel。

http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html

+1

-1,這裏不需要重新發明輪子......而是使用適當的Swing組件。 – user1329572

+2

@ user1329572這取決於OP的其他要求。也許JList是他的最佳解決方案(很可能不是,但誰知道)。 – brimborium

+0

@ user1329572,爲什麼downvote我?如果你擔心他會重新發明輪子,那麼就會降低他的問題。或者提供一個anser。 – km1

7

我想你可能,是的,但你在世界的傷害的方式。 JList從概念的角度自然代表List,而不是樹,這意味着大部分的排序邏輯都必須由您來完成。您可能感興趣的是JTree

+1

此外,[JTree的Java跟蹤](http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html) – Brian

+0

我將能夠更改各種組件的索引,然後在按按鈕,將更改應用於GUI,所有代碼都有正確的代碼? –

+0

如果按索引表示樹中的垂直位置,則可以採用現有樹並將索引轉換爲樹內的位置(反之亦然),但我仍然認爲這比重新創建JList更容易。至少這樣,你可以保證用戶不能創建一個無效的狀態,假設所有需要的是它遵循一個樹結構。 – Neil