我有一个名为Scene的JPanel,它包含以下JPanels:Frame、Projector、Tools。
我在Scene上使用null布局,因为我想使用特定的坐标,所以没有其他布局适合我。我使用以下代码将3个JPanels添加到主JPanel Scene中。
setLayout(null);
add(Tools);
add(Frame);
add(Projector);我使用这个顺序是因为我希望Tools始终在顶部(在z轴上)。
现在,如果我在Projector中做了一些导致重新绘制的事情,那么Projector就会出现在其他层的顶部,隐藏Tools。我可以使用线程来重新绘制整个Scene JPanel,但当Projector来onTop和去onBottom时,我看到了这个“闪光”,我不想这样做。
有什么想法吗?
发布于 2016-03-27 04:47:40
如果要相对于组件的z轴将组件放置在彼此之上,请考虑使用JLayeredPane作为主容器,然后使用add(...)方法添加组件,该方法将整数作为其第二个参数。最下面的层应该使用JLayeredPane.DEFAULT_LAYER添加,我认为它是0。这将允许非oqaque顶部组件通过它们显示较低的组件。
https://stackoverflow.com/questions/36240364
复制相似问题