swing中setSize与setPreferredsize的区别
来源:互联网 发布:网络弹窗广告 编辑:程序博客网 时间:2024/06/05 17:51
我以前很喜欢borderlayout的布局方式,每次想特别调整每个区域的大小,但是每次将一个panel放入到north或者其他4个区域时,总是达不到想要的效果,刚刚才发现原来setPreferredSize和setSize是有区别的。
The slightly longer answer is: use setSize() if your component's parent has no layout manager, and setPreferredSize() and its related setMinimumSize and setMaximumSize if it does.
setSize() probably won't do anything if the component's parent is using a layout manager; the places this will typically have an effect would be on top-level components (JFrames and JWindows) and things that are inside of scrolled panes. You also must call setSize if you've got components inside a parent without a layout manager.
As a general rule, setPreferredSize() should do the "right thing" if you've got a layout manager; most layout managers work by getting the preferred (as well as minimum and maximum) sizes of their components, and then using setSize() and setLocation() to position those components according to the layout's rules. So (as an example) a BorderLayout will try to make the bounds of its "north" region equal to the preferred size of its north component - they may end up larger or smaller than that, depending on the size of the frame, the size of the other components in the layout, and so on
上面大概意思说的就是:
1.setPreferredSize需要在使用布局管理器的时候使用,布局管理器会获取空间的preferredsize,因而可以生效。例如borderlayout在north中放入一个panel,panel的高度可以通过这样实现:panel.setPreferredSize(new Dimension(0, 100));这样就设置了一个高度为100的panel,宽度随窗口变化。
原因:
The slightly longer answer is: use setSize() if your component's parent has no layout manager, and setPreferredSize() and its related setMinimumSize and setMaximumSize if it does.
setSize() probably won't do anything if the component's parent is using a layout manager; the places this will typically have an effect would be on top-level components (JFrames and JWindows) and things that are inside of scrolled panes. You also must call setSize if you've got components inside a parent without a layout manager.
As a general rule, setPreferredSize() should do the "right thing" if you've got a layout manager; most layout managers work by getting the preferred (as well as minimum and maximum) sizes of their components, and then using setSize() and setLocation() to position those components according to the layout's rules. So (as an example) a BorderLayout will try to make the bounds of its "north" region equal to the preferred size of its north component - they may end up larger or smaller than that, depending on the size of the frame, the size of the other components in the layout, and so on
上面大概意思说的就是:
1.setPreferredSize需要在使用布局管理器的时候使用,布局管理器会获取空间的preferredsize,因而可以生效。例如borderlayout在north中放入一个panel,panel的高度可以通过这样实现:panel.setPreferredSize(new Dimension(0, 100));这样就设置了一个高度为100的panel,宽度随窗口变化。
2.setSize,setLocation,setBounds方法需要在不使用布局管理器的时候使用,也就是setLayout(null)的时候可以使用这三个方法控制布局。
区分好这两个不同点之后,我相信你的布局会更随心所欲。
- swing中setSize与setPreferredsize的区别
- swing 中setSize和setPreferredSize的区别
- swing中setSize和setPreferredSize区别
- setSize和setPreferredSize的区别与应用
- 【Swing基础】setPreferredSize和setSize的区别及用法
- 【Swing基础】setPreferredSize和setSize的区别及用法
- 【Swing基础】setPreferredSize和setSize的区别及用法
- setPreferredSize和setSize的区别及用法
- JButton中的setPreferredSize() 与 setSize()
- 自定义布局管理器, setSize和setPreferredSize的区别
- 自定义布局管理器, setSize和setPreferredSize的区别
- setPreferredSize()、getPreferredSize()与pack()的配合使用以及setSize()方法
- setPreferredSize---setSize
- setPreferredSize和的setSize和setbounds的用法
- java setPreferredSize和setsize,setLocation,setBounds方法的不同
- java setPreferredSize和setsize,setLocation,setBounds方法的不同
- setSize()和setPreferredSize(new Dimension())使用小结
- Swing中JScrollPane添加JPanel设置setPreferredSize问题
- InternetOpen/InternetOpenUrl/InternetReadFile 等相关Win32 网络API 使用详细说明
- 为什么要使用NoSQL
- asp中rs.addnew与rs.update更新数据库的方法
- LeetCode Binary Tree Preorder Traversal 前序遍历二叉树 递归和非递归解法
- 最近在做ASP.net网站用到的技术和遇到的问题做个记录
- swing中setSize与setPreferredsize的区别
- Linux Shell脚本学习
- 第11周项目一--调用函数输出星号图(2)
- 给超链接加onclick事件
- 求二个数的最大公约数
- 单机配置MYSQL多实例
- 部署iwebshop,ecshop到Linux服务器
- 『java』java.lang.ClassFormatError: Test (unrecognized ...
- 安卓 ListView 几个重要属性