2013-05-14 74 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相同的效果。