如何使用setLayout(null)使JPanel保持在顶部(z轴上)



我有一个名为Scene的JPanel,它包括以下JPanel:FrameProjectorTools

我在Scene上使用空布局,因为我想使用特定的坐标,所以没有其他布局适合我。我使用以下代码将3个JPanel添加到主JPanel Scene中。

setLayout(null);
add(Tools);
add(Frame);
add(Projector);

我使用此顺序是因为我希望Tools始终位于顶部(在z轴上)。

现在,如果我在Projector内部做了一些事情,导致重新绘制,那么Projector会出现在其他层的顶部,从而隐藏Tools。我可以使用线程重新绘制整个Scene JPanel,但当Projector出现在Top和Bottom时,我会看到这个"闪光",我不想这样做。

有什么想法吗?

如果要将组件相对于z轴放置在彼此之上,请考虑使用JLayeredPane作为主容器,然后使用以Integer作为第二个参数的add(...)方法添加组件。最底层应该使用JLayeredPane.DEFAULT_LAYER添加,我认为它是0。这将允许非oqaque顶部组件通过它们显示较低的组件。

相关内容

  • 没有找到相关文章

最新更新