JFrame jframe=new JFrame();
JMenuBar jmenubar=new JMenuBar();
JPanel jpanel_1=new JPanel();
JPanel jpanel_2=new JPanel();
Container container=getContentPane();
container.setLayout(new BorderLayout());setMenuBar(jmenubar);
container.add(jpanel_1,BorderLayout.CENTER);
container.add(jpanel_2,BorderLayout.EAST);jpanel_1.setBorder(new EtchedBorder( EtchedBorder.LOWERED,Color.white, 
                          new Color(150, 150, 150) ));
jpanel_2.setBorder(new EtchedBorder( EtchedBorder.LOWERED,Color.white, 
         new Color(150, 150, 150) ));问题:
我可以使用getWidth()\getHeight()来获取jframe、jmenubar、jpanel_1、jpanel_2的尺寸,由于jframe有装饰,所以
jframe的宽=jpanel_1宽 + jpanel_2宽+jframe装饰的宽
jframe的高=jpanel_1高 + jmenubar的高 + jframe装饰(包括窗口顶端最小化最大化标题栏)的高因为我设置的窗口是固定的,但是系统改变风格后,会发生变化,因此,
我如何”直接“获取jframe装饰的宽和高???而不是通过上面的减法操作来获取,有什么类方法没?谢谢

解决方案 »

  1.   

    Dimension d =fram.getSize();
    Dimension 类里面有些方法,你自己查查,例如:d.width, d.height
      

  2.   


    d.width,等效于getWidth()
    d.height等效于getHeigth()
      

  3.   


    Toolkit kit = Toolkit.getDefaultToolkit();
    Dimension screenSize = kit.getScreenSize();//获得屏幕的大小
    int screenHeight = screenSize.height;//屏幕高
    int screenWidth = screenSize.width;//屏幕宽
      

  4.   

    用java.lang.Container的getInsets()方法可以获得标题栏的宽度和高度,Insets对象是容器边界的表示形式,有top,left,right,bottom四个属性可用。