2013-05-14 78 views
-1

因此,我使用NetBeans的GUI構建器創建了一個小型Java程序。我在屏幕上有一大堆標籤(偶爾是圖標) - 偶爾它們會被髮送到相同的確切位置。我如何確保最後發送的標籤實際上在標籤堆上顯示ontop?以及確保mousepress事件來自該頂級標籤,而不是下面的標籤之一?Swing中的控制順序

這就像是我的第3天學習java,所以原諒我,如果這是一個愚蠢的問題:d

+1

以這種方式學習Java不會幫助您的理由,請先嚐試學習Basics。 – 2013-05-14 16:09:32

+1

*「這就像我第三天學習java,..」*這是進入Java GUI開發太快的方式。 – 2013-05-14 16:10:35

+0

我有使用C#的經驗,我掌握了大部分的基礎知識,而且我不想創建一千個你好的世界和自行車類的應用程序,我寧願只編寫一些實際的程序並解決問題。 – 2013-05-14 16:11:02

回答

2

使用CardLayout與setLayout的。有了這個,你可以將其他東西堆疊起來。


讓我們假設你正在使用一個JPanel的CardLayout的每一個「卡」,在其上放置該JLabel。然後,你需要做的JPanel透明:

jPanel.setOpaque(false); 

我相信自己的JLabel已經透明。

+0

+1,但是我對這個問題的閱讀表明OP希望所有的標籤(或者至少是其他圖標不會遮擋的部分)在*相同的時間可見*。 – 2013-05-14 16:17:14

+0

這可能會工作,謝謝= P – 2013-05-14 16:24:44

1

如何確保上次發送的標籤實際上在標籤堆上顯示ontop?

將標籤的ZOrder設置爲零。 ZOrder控制面板上組件的繪製順序。

另一種方法是使用:

panel.add(0, label); 

這具有作爲添加的組件時設置ZORDER相同的效果。