BorderLayout布局中能改变组件大小么!该怎么处理

BorderLayout布局中能改变组件大小么!该怎么处理,第1张

jpanel里面你放的是什么东西啊,图片吗?还是别的组件?borderlayout布局挺方便,但是有一定的限制,强制的让改变组件属性,所以组建的属性设置基本无效,除非是重要的图片或组件,不然不用太注重它。我一般都自定义,或复杂的一部分用jscollpanel另外布局,混合着用呗。。。

使用BorderLayout时,中间的面板会随着窗体的变化而变化,其他区域的大小根据添加组件多少而变化。举个例子,现在想将一个面板固定到上边,高度为固定值,这是我们需要设置面板的高度。但是调用面板的 setSize()方法根本没有效果。调用 setMaximumSize()和setMinimumSize()都没有用。

最后才发现应该调用的是 setPreferredSize()才能达到效果。

也可以参见我的博客http://www.cnblogs.com/LiuYanYGZ/p/6158729.html

在设置JPanel大小的时候,要用JPanel.setPreferredSize()这个方法才行.然后再用borderLayout就可以设置上下左右的宽度了。

setSize()是手动设置组建的大小。Dimension类封装对象中组建的宽度和高度(精确到整数)。setPreferredSize设置此组件的首选大小 。

在用java编程时,有时需要设置JPanel的大小,而JPanel的setSize()方法不管用。

在使用布局管理器的时候,可以不适用setSize(),因为布局管理器会自动调用组件的setSize()方法设置组件的大小。即时用户调用setSize方法设置组件大小,最终可能被覆盖。

set(Preferred/Minimal /Maximum)Size() ,他们只是给父组件或布局管理器他们能得到多少空间的暗示而已,非强制立即执行效果,或通过pack或revalidate(JFrame无)进行效果实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6594882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-25
下一篇 2023-03-25

发表评论

登录后才能评论

评论列表(0条)

保存