我现在是用的是BorderLayout布局,我如何“直接”获得BorderLayout.CENTER的尺寸?
是直接获得,不要在CENTER中添加一个JPanel,以获取JPanel的尺寸来间接获取BorderLayout.CENTER的尺寸。
我现在是在BorderLayout.CENTER中添加了一个JPanel,JPanel有固定的尺寸,在拉伸窗口的时候,BorderLayout.CENTER和JPanel之间会有空白,我想根据JPanel和BorderLayout.CENTER两者大小的差值来调整窗口JFrame的大小:
JFrame.setSize(JFrame.getWidth()- (BorderLayout.CENTER的宽 - JPanel的宽) ,
JFrame.Height() - (BorderLayout.CENTER的高 - JPanel的高) );的方法来消除那一块空白。如有有其他更好的方法也行。谢谢!
是直接获得,不要在CENTER中添加一个JPanel,以获取JPanel的尺寸来间接获取BorderLayout.CENTER的尺寸。
我现在是在BorderLayout.CENTER中添加了一个JPanel,JPanel有固定的尺寸,在拉伸窗口的时候,BorderLayout.CENTER和JPanel之间会有空白,我想根据JPanel和BorderLayout.CENTER两者大小的差值来调整窗口JFrame的大小:
JFrame.setSize(JFrame.getWidth()- (BorderLayout.CENTER的宽 - JPanel的宽) ,
JFrame.Height() - (BorderLayout.CENTER的高 - JPanel的高) );的方法来消除那一块空白。如有有其他更好的方法也行。谢谢!
JPanel如果是放在Center位置上,肯定是会填充满Center这个区域的。
将JPanel设置了固定的尺寸,在拉伸窗口的时候,所以会产生空白区域
System.out.println(JFrame.getWidth())
System.out.println(JFrame.getWidth())
System.out.println(JPanel.getWidth())
System.out.println(JPanel.getHeight())
输出后你比较一下数值后就会明白了。
你所要的BorderLayout.CENTER的尺寸实际就是JPanel的尺寸。
你可以根绝你设置的固定尺寸作为依据来设置,JPanel的宽-固定尺寸的宽=空白区域的宽
JPanel的高-固定尺寸的高=空白区域的高
System.out.println(JFrame.getWidth())
System.out.println(JFrame.getWidth())
System.out.println(JPanel.getWidth())
System.out.println(JPanel.getHeight())输出的结果是不等的,是因为JFrame有边框,或者菜单栏等,但是,你可以改变窗口尺寸,多输出几次,比较一样会发现,它们之间差生的差值的一样,那个差值就是边框,这样就证明BorderLayout.CENTER的尺寸实际就是JPanel的尺寸,JPanel如果是放在Center位置上,肯定是会填充满Center这个区域的。