使用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无)进行效果实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)