Java 按下 x 按钮后关闭桌面应用程序的代码

Java code for closing a desktop application after pressing the x button

我需要一些帮助来介绍一种方法或其他东西,它会在我按下角落里的默认 X 按钮后关闭桌面应用程序。我在网上找到了很多方法,但我要么不知道把它放在哪里,要么我遗漏了一些东西...

这是我的代码:

import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;

public class Calculator implements ActionListener {

Frame frame = new Frame();
Label label1 = new Label("First Number");
Label label2 = new Label("Operator");
Label label3 = new Label("Second Number");
Label label4 = new Label("Result");

TextField text1 = new TextField();
Choice choice = new Choice();
TextField text2 = new TextField();
TextField text3 = new TextField();
Button button = new Button("Calculate");

Calculator() {
    label1.setBounds(50, 100, 100, 20);
    label2.setBounds(50, 140, 100, 20);
    label3.setBounds(50, 180, 100, 20);
    label4.setBounds(50, 220, 100, 20);
    text1.setBounds(200, 100, 100, 20);
    choice.setBounds(200, 140, 100, 20);
    text2.setBounds(200, 180, 100, 20);
    text3.setBounds(200, 220, 100, 20);
    button.setBounds(200, 200, 100, 20);

    frame.add(label1);
    frame.add(label2);
    frame.add(label3);
    frame.add(label4);
    frame.add(text1);
    frame.add(choice);
    frame.add(text2);
    frame.add(text3);
    frame.add(button);

    button.addActionListener(this);

    choice.add("+");
    choice.add("-");
    choice.add("*");
    choice.add("/");

    frame.setLayout(null);
    frame.setVisible(true);
    frame.setSize(400, 350);
}

public void actionPerformed(ActionEvent event) {
    try {
        double number1 = Double.parseDouble(text1.getText());
        double number2 = Double.parseDouble(text2.getText());

        String selectedOperation = choice.getSelectedItem();

        if (selectedOperation.equals("+"))
            text3.setText(String.valueOf(number1 + number2));
        else if (selectedOperation.equals("-"))
            text3.setText(String.valueOf(number1 - number2));
        else if (selectedOperation.equals("*"))
            text3.setText(String.valueOf(number1 * number2));
        else if (selectedOperation.equals("/")) {
            if (number2 != 0)
                text3.setText(String.valueOf(number1 / number2));
            else System.out.println("Can't do that...");
        }
    } catch (NumberFormatException ignore) {
        System.out.println("You can only introduce numbers!");
    }
}
}

public class Main {
public static void main(String[] args) {
    new Calculator();
}
}

非常感谢您的帮助,因为我正在努力学习 Java!

没有人再使用 AWT GUI。使用 Swing、JFrame、JButton、JLabel、JTextField。然后 JFrame.setDefaultCloseOperation(EXIT_ON_CLOSE).

不太清楚您为什么使用 AWT 而不是 Swing。因为后者比前者更受推荐。

但是尽管如此 - 您可以通过添加 window 侦听器来退出应用程序。例如:

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

附带说明一下,如果您使用的是 Swing 而不是 AWT(即 JFrame 而不是 Frame),您也可以这样做:

JFrame jframe = ....;
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);