2010-05-27 48 views
2

我在java swing中創建了一個應用程序,
現在我遇到的問題是,
我想最小化我的jframe,當它停用,然後最大化我想激活該窗口。
如何激活和停用java中的框架?

所以爲了最大化,我想激活任何使用java代碼的jframe。
那麼如何激活和停用任何jframe,以便我可以在窗口監聽器上做些什麼?

在此先感謝。

+0

你的意思是被禁用/激活?已失去焦點/獲得重點? – 2010-05-27 07:59:22

+0

現在再次閱讀您的問題,我不太確定自己完全明白您要做什麼。請重新說明你的問題。 – kamasheto 2010-05-27 08:09:55

+0

這裏我想要關注任何幀,所以只要我獲得焦點,那麼該幀將處於活動模式。 – Nitz 2010-05-27 08:20:37

回答

1

以下工作:

import java.awt.Frame; 

import javax.swing.*; 

public class FrameTest { 
    public static void main(String[] args) throws InterruptedException { 

     // Create a test frame 
     JFrame frame = new JFrame("Hello"); 
     frame.add(new JLabel("Minimize demo")); 
     frame.pack(); 

     // Show the frame 
     frame.setVisible(true); 

     // Sleep for 5 seconds, then minimize 
     Thread.sleep(5000); 
     frame.setState(Frame.ICONIFIED); 

     // Sleep for 5 seconds, then restore 
     Thread.sleep(5000); 
     frame.setState(Frame.NORMAL); 

     // Sleep for 5 seconds, then kill window 
     Thread.sleep(5000); 
     frame.setVisible(false); 
     frame.dispose(); 

     // Terminate test 
     System.exit(0); 
    } 
} 

http://www.javacoffeebreak.com/faq/faq0055.html


修改爲重點,你可以做frame.requestFocus();窗口。

+0

我知道如何最小化和最大化jframe,但我想知道, 如何設置任何幀來激活模式和取消激活模式。 – Nitz 2010-05-27 08:00:27

+0

什麼是激活/關閉模式? – aioobe 2010-05-27 08:08:41

+0

對不起,我正在寫一些其他功能的代碼。 非常感謝你的回覆。 – Nitz 2010-05-27 08:15:52

4

你需要一個的WindowListener添加到JFrame,然後下面的邏輯添加到您的聽衆:

public class Demo extends JFrame implements WindowListener { 

    public Demo() { 
     addWindowListener(this); 
    } 

    public void windowActivated(WindowEvent e) { 
     setExtendedState(getExtendedState() | Frame.ICONIFIED); 
    } 

    public void windowDeactivated(WindowEvent e) { 
     setExtendedState(getExtendedState() | Frame.MAXIMIZED_BOTH); 
    } 

    .... 
}