setPreferredSize和的setSize和setbounds的用法
setSize 将调整组件大小到指定的大小。setPreferredSize设置首选大小。该组件实际上可能不是这个大小,取决于它所在的容器的大小,或者用户是否手动调整组件的大小。 setSize()如果你的组件的父母没有布局管理器,setPreferredSize()和它的相关setMinimumSize和setMaximumSize如果它使用。setSize()如果组件的父级使用
setSize
将调整组件大小到指定的大小。
setPreferredSize
设置首选大小。该组件实际上可能不是这个大小,取决于它所在的容器的大小,或者用户是否手动调整组件的大小。
setSize()
如果你的组件的父母没有布局管理器,setPreferredSize()
和它的相关setMinimumSize
和setMaximumSize
如果它使用。
setSize()
如果组件的父级使用布局管理器,可能不会做任何事情; 这通常会产生影响的地方将在顶层组件(JFrames
和JWindows
)以及内部的东西scrolled panes
。setSize()
如果没有布局管理器的情况下,您还需要调用组件内部的组件。
1.setPreferredSize需要在使用布局管理器的时候使用,布局管理器将获取空间的preferredsize,因而可以生效。例如borderlayout在北中放入一个面板,面板的高度可以通过这样实现:panel.setPreferredSize(new Dimension(0,100));这样就设置了一个高度为100的面板,宽度随窗口变化。
2.setSize,setLocation,的setBounds方法需要在不使用布局管理器的时候使用,也就是setLayout的(空)的时候可以使用这三个方法控制布局。
看源码也可以有所发现: setSize()和setLocation()是通过调用setBounds实现的
第一点,使用这个方法,component的x,y坐标是相对于它的父容器的。如果不注意,x、y的值,比父容器的宽度和高度还大的话,就容易造成加进去组件但是显示不出来的问题。我就是遇到这么一个问题,现在才想明白。
第二点,这个方法只有在父容器的布局方式为绝对布局时才管用,如果是别的布局方式,调用这个方法是没有效果的,只有采用setPreferredSize这个方法才管用。不同的布局方式有不同的设置方法。
更多推荐
所有评论(0)