2012-10-03 114 views
1

嗨,大家好我正在用java編寫一個小程序,這是我第一次嘗試使用界面/圖片。無法在java中關閉框架?

它使我的框架,但是當我點擊關閉按鈕X,它不關閉它只是把它當作沒有發生......任何想法?

class Graph extends Canvas{ 

    public Graph(){ 
     setSize(200, 200); 
     setBackground(Color.white); 
    } 

    public static void main(String[] args){ 

     Graph gr = new Graph(); 

     Frame aFrame = new Frame(); 
     aFrame.setSize(300, 300);  
     aFrame.add(gr);  
     aFrame.setVisible(true); 

    } 
+0

你需要setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) – Shark

+0

我也建議看javax.swing.WindowConstants.DISPOSE_ON_CLOSE。 – JIV

回答

5

是java.awt.Frame?我認爲你需要明確添加處理程序,以便:

frame.addWindowListener(new WindowAdapter(){ 
    public void windowClosing(WindowEvent we){ 
    System.exit(0); 
    } 
} 

我用this源等等。

如果它擺動它會是這樣的jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

+0

它是一個java.awt.Frame – Butterflycode

1

添加aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

+0

這是如何工作的?... 'aFrame'是一個'awt框架'而不是'Jframe'。 –

0
class Graph extends Canvas{ 

public Graph(){ 
    setSize(200, 200); 
    setBackground(Color.white); 
    addWindowListener( 
       new java.awt.event.WindowAdapter() { 
       public void windowClosing(java.awt.event.WindowEvent e) { 
        System.out.println("Closing window!"); 
        dispose() ; 
        System.exit(0); 
       } 
       } 
      ); 
} 

public static void main(String[] args){ 

    Graph gr = new Graph(); 

    Frame aFrame = new Frame(); 
    aFrame.setSize(300, 300);  
    aFrame.add(gr);  
    aFrame.setVisible(true); 

}