我有一个名为Scene
的JPanel,它包括以下JPanel:Frame
、Projector
、Tools
。
我在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顶部组件通过它们显示较低的组件。