2012-09-20 26 views
0

我的工作与的JFrame启动Swing应用程序,但所有其它帧被列为JInternalFrames,当我在不同的计算机instaled是我面临的一些严重的屏幕大小的问题,我用下面的梅索德以全屏设置JFrame如何调整任何屏幕尺寸的JFrame和JInternal帧?

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    setBounds(0, 0, screenSize.width, screenSize.height); 
    JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH); 

但我没有观察到任何区别。我也想调整屏幕尺寸的JInternalFrames。如果您有任何建议或解决方案,请大家帮忙

+1

您是否将内部框架添加到['JDesktopPane'](http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html)?什么平台?请修改您的问题以包含[sscce](http://sscce.org/),其中显示您遇到的特定问题。 – trashgod

+0

是的,我将JInternalFrame添加到JDesktopPane,我想要的是使JINternalFrames灵活与任何屏幕的大小。 –

回答

3

你应该设置扩展状态这样的框架:

frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH); 

你会需要一个组件侦听器,监听框架扩展以适应屏幕和调整大小的变化。

frame.addComponentListener(new ComponentAdapter() { 
     @Override 
     public void componentResized(ComponentEvent event) { 
      Dimension d = frame.getContentPane().getSize(); 
      // code to save frame size or calculate internal frame sizes 
      frame.validate(); 
     } 
    });