Java设置窗口居中


背景

就开发图形界面,遇到窗口居中,就原方法,是先获取屏幕的长和宽,然后在除以2,

 

还有一种就是在初始化JFrame时候,写上一句

setLocationRelativeTo(null); 

这样就会使窗口居中,但要注意顺序,应该是先定义窗口大小,在写上这句话!

在看下api中的说明

public void setLocationRelativeTo(Component c)根据以下情况设置窗口相对于指定组件的位置。 
下面提到的目标屏幕是在调用setLocationRelativeTo方法之后应该放置窗口的屏幕。 

如果组件是null ,或GraphicsConfiguration与此组件关联是null时,窗口被放置在屏幕的中心。 中心点可以使用GraphicsEnvironment.getCenterPoint方法获得。 
如果组件不是null ,但它当前没有显示,则该窗口将放置在与此组件GraphicsConfiguration GraphicsConfiguration定义的目标屏幕的中心。 
如果组件不是null并显示在屏幕上,则窗口的位置使得窗口的中心与组件的中心重合。 
如果屏幕配置不允许窗口从一个屏幕移动到另一个屏幕,则窗口仅被放置在根据上述条件确定的位置,并且其GraphicsConfiguration未更改。 

注意 :如果窗口的下边缘超出屏幕,则窗口放置在离屏幕中心最近的Component侧。 因此,如果组件位于屏幕的右侧,窗口将放置在左侧,反之亦然。 

如果在计算了窗口位置之后,窗口的上,左或右边缘超出了屏幕,则窗口位于窗口的上,左或右边缘与屏幕的相应边缘。 如果窗口的左边缘和右边缘都不在屏幕之外,窗口将放置在屏幕的左侧。 如果顶部和底部边缘都超出屏幕,则会发生类似的放置。 在这种情况下,窗口被放置在屏幕的顶部。 

该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象被放置并且以与桌面设置密切对应的方式被放大。 

参数 
c - 确定窗口位置的组件 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM