请问,怎样调整panel的大小?

EDDGA 2011-01-02 01:17:36
学着用了几天swing的layout,有点手忙脚乱了

有3个JPanel:panel_1、panel_2和pnale_3。


panel_1用BoxLayout(Y_AXIS),panel_2和panel_3依次放在panel_1里。

不管我用panel_2.setSize()还是panel_2.setPreferredSize(),panel_2和panel_3依然是一样大

请问为什么会这样?该怎样做才能调整panel_2和panel_3的大小?谢谢

另外,关于swing的layout,有没有什么参考资料呢?
...全文
870 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
java爱好者 2011-01-02
  • 打赏
  • 举报
回复
不可以试试设置成BorderLayout 然后用panel_2.setPreferredSize()设置面板的大小,这样就可以了
你看看这个http://wenku.baidu.com/view/4e2c0b72f242336c1eb95e00.html
huntor 2011-01-02
  • 打赏
  • 举报
回复
BoxLayout 试图按照组件的首选宽度(对于水平布局)或首选高度(对于垂直布局)来排列它们。对于水平布局,如果并不是所有的组件都具有相同的高度,则 BoxLayout 会试图让所有组件都具有最高组件的高度。如果对于某一特定组件而言这是不可能的,则 BoxLayout 会根据该组件的 Y 调整值对它进行垂直调整。默认情况下,组件的 Y 调整值为 0.5,这意味着组件的垂直中心应该与其他 Y 调整值为 0.5 的组件的垂直中心具有相同 Y 坐标。

同样地,对于垂直布局,BoxLayout 试图让列中的所有组件具有最宽组件的宽度。如果这样做失败,则 BoxLayout 会根据这些组件的 X 调整值对它进行水平调整。对于 PAGE_AXIS 布局,基于组件的开始边水平调整。换句话说,如果容器的 ComponentOrientation 表示从左到右,则 X 调整值为 0.0 意味着组件的左边缘,否则它意味着组件的右边缘。
Jlins 2011-01-02
  • 打赏
  • 举报
回复
layout(null)不用布局管理器
所有panel的大下都自己setSize
所有空间的位置都自己设置

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧