2011-03-12 38 views
9

我创造了一个AWT samll aplication,当我关闭窗口,关闭按钮不起作用,但我已经添加关闭按钮的功能,后关闭按钮是不工作...如何关闭awt中的窗口?

import java.awt.*; 
import java.applet.*; 
import java.awt.event.*; 
import javax.swing.*; 
class ButtonDemo1 implements ActionListener 

{ 
Button b1; 
TextField tf; 
Frame f; 
ButtonDemo1(String s) 
{ 
    f=new Frame(s); 
    b1=new Button("OK"); 

    tf=new TextField(10); 
    f.setSize(200,250); 
    f.setVisible(true); 
    b1.addActionListener(this); 

    f.add(tf); 
    f.add(b1); 

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

    f.setLayout(new FlowLayout()); 
} 

public void actionPerformed(ActionEvent e) 
{ 
    if(e.getSource()==b1) 
    { 
     tf.setText("Press Ok"); 
    } 

} 
public static void main(String args[]) 
{ 
    new ButtonDemo1("First"); 
} 


} 

为什么关闭按钮不起作用?

+1

尝试把f .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);在你的程序中。 – u449355

+1

@ Umesh,请让你的评论一个答案,以便我们可以投票你代表。毕竟,这是正确的答案。 – krock

+5

@krock:是吗?即使他没有使用JFrame,并且这种方法不适用于他的框架? –

回答

8

你可以做这样的:

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

尽管这确实是他的头衔的答案,但他的问题主体已经有了这个代码。我相信他的System.exit(0)没有按预期行事(可能是我遇到的同样的问题,并寻找答案)。 – Kit10

3

试着做这样的:

class ExampleClass implements ActionListener, WindowListener 
{ 

... 

f.addWindowListener(this); 

... 

public void windowDeactivated(WindowEvent e) {} 
public void windowDeiconified(WindowEvent e) {} 
public void windowIconified(WindowEvent e) {} 
public void windowOpened(WindowEvent e) {} 
public void windowActivated(WindowEvent e) {} 
public void windowClosed(WindowEvent e) {} 

public void windowClosing(WindowEvent e) 
{ 
    System.exit(0); 
} 

}