如何将一个组件放在其他组件之上?

Posted

技术标签:

【中文标题】如何将一个组件放在其他组件之上?【英文标题】:How to put a component on top of others? 【发布时间】:2013-01-18 12:19:29 【问题描述】:

我有一个JScrollPanel,其中包括一个大面板,它本身包括 3 个内面板。我想将一个面板(例如)放在一个特殊的地方,以便始终可以看到,我的意思是用户可以滚动到任何想要的地方,但该面板始终位于其他组件的顶部并且不会移动。我试图通过JLayeredPane 做到这一点,但我做不到。我该怎么做?

【问题讨论】:

【参考方案1】:

难道你不能把你不想移动的内容放在一个单独的不是滚动面板的 JPanel 中吗?如果您不希望它滚动,我看不出有任何理由将它包含在滚动面板中。

所以有一个不滚动的大面板(称为 bigPanel 或其他什么)。然后在 bigPanel 中设置您不想滚动的面板。然后将滚动面板也放入 bigPanel 中。

也许我遗漏了什么,但这不能解决你的问题吗?

【讨论】:

导致我想将该面板放在其他面板之上的原因是该面板具有的功能,即有时会出现在其他事物之上的通知栏一会儿消失。换句话说,我为什么要在其他人之上而不是在他们旁边的原因是指我的程序 GUI 的设计...... 您真的希望它覆盖其他面板的内容,还是只是希望它出现在它们上方然后消失?以上我的意思是在 y 轴上,而不是在 z 轴上。【参考方案2】:

你可以使用

GlassPane JLayeredPane

将内容覆盖在屏幕上的其他组件之上

【讨论】:

【参考方案3】:

有一个JLayeredPane 示例here,但OverlayLayout,看到here,可能会感兴趣。它不包含在常规的gallery 中。

还请考虑在滚动窗格的JViewport 上绘制的example。

【讨论】:

以上是关于如何将一个组件放在其他组件之上?的主要内容,如果未能解决你的问题,请参考以下文章

Qt 一张图片显示在其他组件之上

如何让反应组件位于另一个组件之上

如何将用户控件放在所有其他控件之上的静态层中?

使用 HTML 将图像放在另一个图像之上?

如何将背景图像放在圆形组件上?

原生移动应用之上的 HTML5 层