【发布时间】:2011-05-13 10:13:24
【问题描述】:
我正在为一个学校 Java 项目开发四人连接游戏。我了解了 JLayeredPane 的“如何”,它按预期工作,但我不太了解某个概念背后的“原因”。
这是我的理解:
JLayeredPane 是一个容器,类似于 JPanel,它允许您为每个组件指定深度和位置。 Depth 是一个整数,0 是底层,n-1 是顶层,n 是组件的数量。 Position 是一个 int(是的,一个使用 Integer 包装类,一个只是一个基元!)指定组件在层内的位置,0 是最顶层,-1 是最底层,正整数 in之间,数字越小位置越高。因此,单个层中的四个组件可以从最上到最下排序到位置 0、1、2、-1。
我的问题是,有什么必要同时拥有这两个概念?
例如,我创建了三个带有图像的 JLabel:前板、后板和一块。棋子有时在frontBoard前面,有时在frontBoard和backBoard之间。让我们来看看第二个例子。
我可以通过以下任何一种方式获得相同的效果:
1) 我可以将背板设置为第 0 层,位置 0;该片到第 1 层,位置 0;和 frontBoard 到第 2 层,位置 0
or
2) 我可以将背板设置为第 0 层,位置 -1;该片到第 0 层,位置 1;和 frontBoard 到第 0 层,位置 0
这两种方法我都测试过了,我找不到这两种方法在功能上的区别。
谁能帮我解开这个谜团?
【问题讨论】:
标签: java swing jlayeredpane