我现在是用的是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的高) );的方法来消除那一块空白。如有有其他更好的方法也行。谢谢!

解决方案 »

  1.   

    BorderLayout.CENTER和JPanel之间会有空白没明白什么意思?
    JPanel如果是放在Center位置上,肯定是会填充满Center这个区域的。
      

  2.   


    将JPanel设置了固定的尺寸,在拉伸窗口的时候,所以会产生空白区域
      

  3.   

    设置固定的尺寸也是没有用的,当拉大窗口后,会自动自动填充,超出你所固定尺寸的部分将掩盖,你看着像是设置了固定的尺寸,实际是JPanel一样占满了BorderLayout.CENTER,不信你可以通过输出尺寸来试一试
    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的高-固定尺寸的高=空白区域的高
      

  4.   

    忘了说明一下
    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这个区域的。