具有分层功能的可扩展面板

时间:2014-01-26 21:45:10

标签: java swing user-interface jpanel jlayeredpane

我试图让两个JPanel层叠在另一个上面,但同时,展开以适应其父级的大小。例如,如果展开了包含两个分层JFrame的{​​{1}},则分层JPanel也会展开以填充整个JPanel,反之亦然JFrame已崩溃。

我们的想法是创建一个顶层,其中包含控制底层的按钮和其他Swing组件,但仍然可以通过顶层看到底层(通过将顶层的属性设置为JFrame) 。同时,顶层和底层都应填充其容器的可用大小(包含图层的setOpaque(false)JPanel。)

我已经尝试使用JFrame,但是必须先知道窗格的大小(到目前为止我已经能够使它工作)。这些大小限制将随着包含JLayeredPaneJPanel的大小的变化而变化。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

你可以......

您尝试使用OverlayLayout,但我不确定它是否符合您的要求。

你可以

设置GridBagLayout上的JLayeredPane,将每个组件放在同一个gridx / gridy,然后填充GridBagConstraints.BOTH和{{1} } {/ 1}} / weightx weighty

你可以

使用框架的“玻璃窗格”作为顶层。这将允许您将控件放在框架的“内容窗格”顶部

有关详细信息,请参阅How to use root panes