java - 带分层的可扩展面板

标签 java swing user-interface jpanel jlayeredpane

我试图让两个 JPanel 彼此重叠,但同时扩展以适应其父级的大小。例如,如果展开包含两个分层 JPanelJFrame,则分层 JPanel 也会展开以填充整个 JFrame,当 JFrame 折叠时反之亦然。

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

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

在此先感谢您的帮助。

最佳答案

你可以...

尝试使用 OverlayLayout ,但我不确定它是否会满足您的要求。

你可以

JLayeredPane 上设置一个 GridBagLayout,将每个组件放在相同的 gridx/gridy 上,然后填充 GridBagConstraints.BOTHweightx/weighty 1

你可以

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

参见 How to use root panes了解更多详情。

关于java - 带分层的可扩展面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369670/

相关文章:

Java Graphics2D 流?

java - 如何在java中添加一行分隔的复选框文本?

swing - 使用单元格渲染器后禁用行选择功能

java - 动态删除 Java Swing 容器(我的代码在按下按钮时挂起)

java - 什么在 MIDP 编程中相当于 swing-application 的 JButton?

iphone - 选择多个电话号码和电子邮件地址的方法

java - 简单的邮件列表

java - 当 JMS Prod 位于辅助 POJO 类中时,如何在事务中包含 JMS Producer

java - 制作可插拔的 Android 消息传递应用程序

c++ - 我可以使用 wxWidgets 而不是 Qt 吗?