我试图让两个 JPanel
彼此重叠,但同时扩展以适应其父级的大小。例如,如果展开包含两个分层 JPanel
的 JFrame
,则分层 JPanel
也会展开以填充整个 JFrame
,当 JFrame
折叠时反之亦然。
想法是创建一个顶层,其中包含控制底层的按钮和其他 Swing 组件,但底层仍然可以通过顶层看到(通过将顶层的属性设置为 setOpaque(false )
)。同时,顶层和底层都应填充其容器(包含层的 JPanel
或 JFrame
)的可用大小。
我已经尝试过使用 JLayeredPane
,但是必须预先知道 Pane 的大小(到目前为止我已经能够让它工作)。这些大小限制将随着包含的 JPanel
或 JFrame
大小的变化而变化。
在此先感谢您的帮助。
最佳答案
你可以...
尝试使用 OverlayLayout
,但我不确定它是否会满足您的要求。
你可以
在 JLayeredPane
上设置一个 GridBagLayout
,将每个组件放在相同的 gridx
/gridy
上,然后填充 GridBagConstraints.BOTH
和 weightx
/weighty
1
你可以
使用框架的“玻璃板”作为顶层。这将允许您在框架的“内容 Pane ”顶部放置控件
参见 How to use root panes了解更多详情。
关于java - 带分层的可扩展面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369670/