setPreferredSize和的setSize和setbounds的用法

setSize 将调整组件大小到指定的大小。

setPreferredSize设置首选大小。该组件实际上可能不是这个大小,取决于它所在的容器的大小,或者用户是否手动调整组件的大小。

 

setSize()如果你的组件的父母没有布局管理器,setPreferredSize()和它的相关setMinimumSizesetMaximumSize如果它使用。

setSize()如果组件的父级使用布局管理器,可能不会做任何事情这通常会产生影响的地方将在顶层组件(JFramesJWindows)以及内部的东西scrolled panessetSize()如果没有布局管理器的情况下,您还需要调用组件内部的组件。

 

1.setPreferredSize需要在使用布局管理器的时候使用,布局管理器将获取空间的preferredsize,因而可以生效。例如borderlayout在北中放入一个面板,面板的高度可以通过这样实现:panel.setPreferredSize(new Dimension(0,100));这样就设置了一个高度为100的面板,宽度随窗口变化。

2.setSize,setLocation,的setBounds方法需要在不使用布局管理器的时候使用,也就是setLayout的(空)的时候可以使用这三个方法控制布局。

 看源码也可以有所发现: setSize()和setLocation()是通过调用setBounds实现的

 

第一点,使用这个方法,componentxy坐标是相对于它的父容器的。如果不注意,xy的值,比父容器的宽度和高度还大的话,就容易造成加进去组件但是显示不出来的问题。我就是遇到这么一个问题,现在才想明白。

第二点,这个方法只有在父容器的布局方式为绝对布局时才管用,如果是别的布局方式,调用这个方法是没有效果的,只有采用setPreferredSize这个方法才管用。不同的布局方式有不同的设置方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值