【发布时间】:2012-02-19 07:22:35
【问题描述】:
我想像这样布置我的 JPane:
-------
| |
| |
| |
-------
| |
-------
这样,顶部比底部更大/更高(顶部由另一个 JPanel 组成并使用 Graphics 对象显示图像,而底部也由另一个 JPanel 组成但使用 Graphics 对象画一些线条和文字)。
我听说最好的方法是使用 GridBagLayout 和 GridBagConstraints。
我正在尝试找出 GridBagConstraints 的适当属性,但遇到了一些困难。这就是我目前所拥有的......
对于顶部,我有:
gridx = 0
gridy = 0
weighty = 1.0; // expand downwards, because the bottom should never expand in the Y direction
fill = GridBagConstraints.BOTH
对于底部,我有:
gridx = 0
gridy = 1
fill = GridBagConstraints.HORIZONTAL
anchor = GridBagConstraints.PAGE_END
不幸的是,所有最终发生的事情都是出现一个大的灰色矩形(我的应用程序有一个白色背景) - 没有加载图像,没有出现线条/文本。
我该怎么办?我应该调整什么?
我已经阅读了一些教程,但它似乎真的很混乱,我在我的第一个应用程序中得到了它,但现在当我尝试这样做时,它似乎对我不起作用。
【问题讨论】:
-
您能提供一个SSCCE 来说明问题吗?从您列出的内容来看,甚至不清楚面板是否被添加到任何东西......
-
请发布您用于设置窗格的整个代码。
-
-1,
I've heard that the best way to do this was using the GridBagLayout and GridBagConstraints.这不是你 3 小时前问这个问题时得到的建议:stackoverflow.com/questions/9012976/… -
@camickr 这不是我听说的,而且这不适用,因为您无法为 GridLayout 指定高度。
-
使用
BorderLayout。如果两个组件之一应该扩展,将其放在CENTER中,否则使用NORTH/SOUTH。我认为GridBagLayout对这种布局来说是个坏建议。你从哪里听到的?
标签: java swing gridbaglayout