如何在awt中关闭窗口?

Ank*_*ain 9 java awt

我在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");
    }
}
Run Code Online (Sandbox Code Playgroud)

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

小智 13

最好使用这种方法 public void dispose()

你为什么要处理一个超出范围的java.awt.Window?

f.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent we) {
            dispose();
         }
     }
);
Run Code Online (Sandbox Code Playgroud)

  • 它应该是“f.dispose()”而不仅仅是“dispose()”。 (3认同)

rub*_*beh 10

你可以这样做:

f.addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent we){
    System.exit(0);
  }
});
Run Code Online (Sandbox Code Playgroud)