default998 2022-10-01 21:38 采纳率: 87.5%
浏览 25
已结题

setDefaultCloseOperation窗口关闭方法无法生效

请问,运行第64行代码关闭不了程序,是哪里有问题呀?


import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;

public class TestTF_3 {
    public static void main(String[] args) {
        new TF().launch();
    }
}

class TF extends JFrame {
    public TextField tf1, tf2, tf3;

    public void launch() {
        Frame f = new Frame();
        tf1 = new TextField(30);
        tf2 = new TextField(30);
        tf3 = new TextField(30);
        Button bn = new Button("=");
        Label lb = new Label("+");

        f.setLayout(new FlowLayout());
        f.add(tf1);
        f.add(lb);
        f.add(tf2);
        f.add(bn);
        f.add(tf3);

        bn.addActionListener(new MyMonitor2());

        f.pack();
        f.setVisible(true);

        // f.addWindowListener(new WindowAdapter() { //正常关闭
        // @Override
        // public void windowClosing(WindowEvent e) {
        // System.exit(-1);
        // }
        // });

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //error 64行
        //this.setDefaultCloseOperation(3); //error
    }

    class MyMonitor2 implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            int num1 = Integer.parseInt(tf1.getText());
            int num2 = Integer.parseInt(tf2.getText());
            int num3 = num1 + num2;
            tf3.setText(num3 + "");
        }
    }
}
  • 写回答

1条回答 默认 最新

  • 梦里逆天 2022-10-01 22:17
    关注

    img

    img

        public void launch() {
            JFrame f = new JFrame();
            tf1 = new TextField(30);
            tf2 = new TextField(30);
            tf3 = new TextField(30);
            Button bn = new Button("=");
            Label lb = new Label("+");
    
            f.setLayout(new FlowLayout());
            f.add(tf1);
            f.add(lb);
            f.add(tf2);
            f.add(bn);
            f.add(tf3);
    
            bn.addActionListener(new MyMonitor2());
    
            f.pack();
            f.setVisible(true);
    
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 10月1日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题