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

标签 java swing jpanel repaint always-on-top

我有一个名为 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/

相关文章:

java - 图形上的图像

Java fillOval不会填充窗口

java - 如何为 SFTP (Java) 创建帐户或用户?

java - 如何在eclipse中执行maven任务(Sonatype插件)

javaparser UnsolvedSymbolException - 正在解析的类上使用的类,使用了另一个未解析的类

java - 使用自定义 JComponents 扩展现有的 Swing 外观

类的 Java 菜单栏操作

java - 如何停止在 JFrame 中调整 JPanel 的大小

java - JPanel 中没有应用颜色?

java - setString 方法从表中检索数据时出现问题