java两个停靠组件,其中第二个组件填充剩余空间
我正在做一个棋盘游戏,我希望棋盘是一个正方形,向西停靠,尺寸为frameHeight x frameHeight,我希望侧面板停靠在东部,以填充剩余的
本质上:
西-帧高x帧高
东-剩余宽度x框架高度
_________________
| | |
| | |
| WEST | EAST |
| | |
| | |
|__________|______|
使用MigLayout目前我说的是大(西)的高度应该是100%,但我不确定如何说宽度应该等于父高度的100%,并用小(东)填充剩余的宽度
有没有人能想出一个好办法
# 1 楼答案
您可以重写
getPreferredSize()
方法,根据面板的父级大小计算面板的大小。请记住,此时您完全忽略了面板中任何内容的大小。如果您仍然关心这个问题,我建议扩展JScrollPane
而不是JPanel
# 2 楼答案
如果
DockingPanel
可以覆盖JFrame
的一部分(具有显示和隐藏的功能),则使用GlassPane
(注意所有的JComponents
必须是lightweight
,否则GlassPane
就落后了)JLayer
(基于Java6JXLayer
)最合适的方法是使用
JSplitPane
# 3 楼答案
MiGLayout不允许对大小约束使用引用,但可以使用
pos
约束:这将添加
panel
似乎停靠在左边缘,覆盖整个高度,宽度等于其高度然后,您可以用以下内容填充剩余的空间: