如何将一个组件放在其他组件之上?
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。
【讨论】:
以上是关于如何将一个组件放在其他组件之上?的主要内容,如果未能解决你的问题,请参考以下文章