我有一个名为 Scene
的 JPanel,其中包括以下 JPanel:
框架
、投影仪
、工具
。
我在 Scene
上使用空布局,因为我想使用特定的坐标,所以没有其他布局适合我。我使用以下代码将 3 个 JPanel 添加到主 JPanel Scene
中。
setLayout(null);
add(Tools);
add(Frame);
add(Projector);
我使用此顺序是因为我希望 Tools
始终位于顶部(在 z 轴上)。
现在,如果我在 Projector
中做一些导致重绘的事情,那么 Projector
就会出现在其他层之上,隐藏 Tools
.我可以使用线程重新绘制整个 Scene
JPanel,但是当 Projector
出现在顶部并进入底部时,我看到这个“闪光”,我不想这样做。
有什么想法吗?
最佳答案
如果您想将组件相对于它们的 z 轴放置在彼此之上,请考虑使用 JLayeredPane 作为主容器,然后使用 add(...)
方法添加组件它以一个 Integer 作为它的第二个参数。应该使用 JLayeredPane.DEFAULT_LAYER
添加最底层,我相信它是 0。这将允许非 oqaque 顶部组件通过它们显示较低的组件。
关于java - 如何使用 setLayout(null) 使 JPanel 保持在顶部(在 z 轴上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240364/