2012-09-20 31 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(); 
     } 
    });