2010-10-19 168 views

回答

41

儘量減少與frame.setState(Frame.ICONIFIED)

恢復與frame.setState(Frame.NORMAL)

+0

並調用setVisible(真)的工作恢復? – rogerdpack 2012-04-03 22:02:16

+0

@rogerdpack不,它可以顯示(可視化)隱藏的窗口,但不能從最小化恢復 – cubanacan 2012-09-12 13:42:24

8

你可以做到這一點有兩種方式

JFrame frame = new JFrame("test"); 
frame.setExtendedState(JFrame.ICONIFIED); // one way 


    frame.setState(JFrame.ICONIFIED); // another way 
-1

如果你想爲組件的事件代碼,然後嘗試下面的代碼。並確保其中包括該代碼是由Frame類

private void closeMouseClicked(java.awt.event.MouseEvent evt){       
    this.setState(1); 
} 

延長或創建一個框架類的實例,並調用的setState類(1);

+2

'this.setState(1);'魔法常量規則,爲什麼當你寫'1時浪費時間寫'JFrame.ICONIFIED' '直接? :) – kajacx 2014-05-12 14:23:57

+5

@kajacx因爲在項目上工作的其他開發人員不知道'1'的含義;它是神祕而且危害可讀性,這就是爲什麼 – 2014-12-24 20:23:15

+3

此外,如果他們決定改變常量的值,你的代碼就會因爲沒有明顯的原因而中斷。玩得開心調試 – weeknie 2014-12-31 16:08:37

-1

您可以使用下面的代碼:

this.setState(YourJFrame.ICONIFIED); 

而且你可以使用此代碼,將其最大化:

this.setExtendedState(MAXIMIZED_BOTH); 
8

最小化:

frame.setState(Frame.ICONIFIED); 

的另一種方式,以儘量減少:

frame.setExtendedState(JFrame.ICONIFIED); 

正常大小:

frame.setState(Frame.NORMAL); 

另一種方式到正常大小:

frame.setExtendedState(JFrame.NORMAL); 

最大化:

frame.setState(Frame.MAXIMIZED_BOTH); 

另一種方式來最大限度地提高:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 

全屏最大化:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
GraphicsDevice[] gs = ge.getScreenDevices(); 
GraphicsDevice myDevice = gs[0]; 
Window window = (Window) frame; 
try { myDevice.setFullScreenWindow(window); } finally { myDevice.setFullScreenWindow(null); } 

參考JFrame documentation以獲取更多信息。

0

另一種方法

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_ICONIFIED)); 
+0

沒有工作。 ICONIFIED做到了。也許我很早就開始了這個活動,但另一個確實奏效了。 – momomo 2017-08-25 15:01:20