第1个回答 2016-11-28
setPreferredSize和setSize的区别及用法
1、setPreferredSize需要在使用布局管理器的时候使用,布局管理器会获取空间的preferredsize,因而可以生效。例如borderlayout在north中放入一个panel,panel的高度可以通过这样实现:panel.setPreferredSize(new Dimension(0, 100));这样就设置了一个高度为100的panel,宽度随窗口变化。
2、setSize,setLocation,setBounds方法需要在不使用布局管理器的时候使用,也就是setLayout(null)的时候可以使用这三个方法控制布局。
3、setSize(包括setLocation)在绝对布局中才能生效。也就是在容器【常见为JPanel】中调用setLayout(null);方法才能生效。这样的弊端是:设置为绝对布局,则意味着不能实现响应式布局。即不管JFrame变的多大,控件还保持着设定的大小。
4、setPreferredSize意味着先获取容器【常见为JPanel】的空间大小,控件的大小即为容器的大小。所以我们可以通过设定容器【常见为JPanel】的大小,再去控制控件的大小。
5、在没有使用layout manager的时候用setSize,在使用了layout manager 的时候用setPreferredSize
并且setPreferredSize通常和setMinimumSize、setMaximumSize联系起来使用
6、setSize()是手动来设置组件的大小
Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。该类与组件的某个属性关联。由 Component 类和 LayoutManager 接口定义的一些方法将返回 Dimension 对象
7、setPreferredSize设置此组件的首选大小 ,一般会用setPreferredSize本回答被网友采纳