java - 如何以最佳方式合并隐藏/可见面板?
问题描述
我正在尝试创建一个每个人都可以做的界面,并且我打算尽可能地保留它。为此,我想要一个“例外”面板,让用户可以选择修改一些更复杂的数据字段。我的解决方案是添加一个按钮“例外”,该按钮将面板设置为可见--panel.setVisible(true)--,问题是界面保持其原始大小,当您按下“例外”时,您还需要手动调整窗口的大小,这样就可以看到现在面板已经存在了。
当“例外”面板隐藏或显示时,如何使窗口自动调整大小以便用户可以看到所有内容?
谢谢!
解决方案
我想您正在使用 Swing,如果您只想将新面板尺寸添加到现有框架,我知道这可能会很棘手。这是我定义的切换功能,用于在对话框中显示/隐藏解释面板:
private void moreExplanationEvent(ItemEvent event) {
if (event.getStateChange() == SELECTED) {
Dimension dim = this.getSize();
explanationPanel.setVisible(true);
pack();
dim.height = dim.height + explanationPanel.getHeight();
this.setSize(dim);
this.setPreferredSize(dim);
pack();
} else if (event.getStateChange() == DESELECTED) {
Dimension dim = this.getSize();
dim.height = dim.height - explanationPanel.getHeight();
explanationPanel.setVisible(false);
this.setSize(dim);
this.setPreferredSize(dim);
pack();
}
}
推荐阅读
- amazon-s3 - 如何处理从云端下载的浏览器缓存
- spring-data-jpa - 带有@OneToMany 的 JPA EmbeddedId - 无法使用 JOIN 进行查询
- firebase - 如果某人的数据不包含特定密钥,我如何防止他写?
- javascript - 页面加载后,Jquery,Django,Infinite Scroll 加载其余元素
- html - 将项目与对齐内容对齐
- angular - 如何在角度使用 3rd 方节点包?
- getstream-io - 在 getstream 中聚合更新组中的活动
- php - 使用 php 发送电子邮件后无法重定向到另一个页面
- mysql - 计算具有相同 MySQL 的 3 列值的行的出现次数
- python - Python:计算数字变化的次数