2013-03-27 85 views
3

我試圖在我的GUI中顯示卡片,並且我想重疊卡片以節省空間。但是,我似乎無法讓它工作。我目前使用的是MigLayout,雖然感覺它比其他的更像是JLabel問題。在另一個JLabel上部分顯示JLabel

要想在高水平描述它,可以考慮在現實生活中玩一種紙牌遊戲。當你手中持卡片時,你只需要看到部分卡片,這張卡片的大部分與另一張卡片重疊,等等,直到最後一張卡片完全顯示出來,因爲沒有任何東西在它的頂部。我想重疊的方式只顯示下方的部分牌,然後頂牌完全顯示。

當前的問題是,當我將JLabel添加到JPanel時,它將最新的標籤放在已經存在的地方。我希望它在現有的東西前面。我似乎無法找到任何方法可以讓我設置前面的標籤。

我想要做的事,如:

認沽卡1在細胞0 0 認沽卡2細胞0 0爲轉y位置 其中兩張卡重疊在頂部

卡2簡單地增加任何區域它把它放在後面,這意味着顯示一個組件的先到先服務優先級。我寧願有最後的優先考慮。就像我說過的,我沒有嘗試找到一種允許任何這種方法的運氣。

如果有任何不明之處,請告訴我。提前致謝。

+0

這可能需要您建立自己的佈局管理器。你可以用GridBagLayout做一些工作,但是我建議你需要本地化以便任何現有的佈局管理器能夠很好地支持它 – MadProgrammer 2013-03-27 03:19:43

+0

好吧,我不會回到GridBagLayout,我有不好的經驗它和我發現它是最可怕的佈局經理之一。我遇到了很多問題,只需在不同的佈局管理器中重做即可解決問題。如果可能,我想繼續使用現有的佈局管理器。 – 2013-03-27 12:37:05

+0

'如果可能,我想繼續使用現有的佈局管理器。不,這是不可能的。 JDK附帶的佈局管理器以2D形式佈局組件,不會重疊。 JDK中有一個名爲OverlayLayout的佈局,但我從來沒有能夠以任何合理的方式使它工作。 – camickr 2013-03-27 15:32:41

回答

6

它看起來像JPanel繼承Container,它有一個方法setComponentZOrder()這聽起來像它只是你所需要的。

setCompoentZOrder() documentation

+0

+1與ZOrder一起玩。 – camickr 2013-03-27 05:08:20

+0

謝謝,這正是我所需要的。它有點笨拙,但我現在有工作,所以一切都很好。 – 2013-03-28 17:13:05

5

退房Overlap Layout這也解釋了一點關於ZORDER是如何工作的,甚至可以爲你提供一個佈局管理器在你的紙牌遊戲,以幫助。

+0

+1,儘管你自己的WordPress的無恥插件點。 – 2013-03-27 05:25:16

+0

以前不知道,這樣一個神話般的佈局存在這樣的工作:-) – 2013-03-27 11:42:15