关闭了这个窗口后程序直接退出了

import javax.swing.*;
import java.awt.*;
public class registerok_ui {
    public registerok_ui() {
        JFrame frame = new JFrame("注册成功");
        frame.setDefaultCloseOperation(3); //当关闭当前窗口时,不退出整个程序
        frame.setBounds(500, 100, 600, 600);
        JPanel panel = new JPanel(new GridBagLayout());
        frame.setContentPane(panel);
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        constraints.insets = new Insets(10, 10, 10, 10);
        JLabel text1 = new JLabel("注册成功");
        constraints.gridx = 0;
        constraints.gridy = 0;
        panel.add(text1, constraints);
        frame.setVisible(true);
    }
}

关闭了这个窗口后程序直接退出了,怎么解决?

import javax.swing.*;
import java.awt.*;

public class RegisterOkUI {
    public RegisterOkUI() {
        JFrame frame = new JFrame("注册成功");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 设置关闭操作为销毁窗口而不退出程序
        frame.setBounds(500, 100, 600, 600);
        JPanel panel = new JPanel(new GridBagLayout());
        frame.setContentPane(panel);
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        constraints.insets = new Insets(10, 10, 10, 10);
        JLabel text1 = new JLabel("注册成功");
        constraints.gridx = 0;
        constraints.gridy = 0;
        panel.add(text1, constraints);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        new RegisterOkUI();
    }
}


你是要实现什么功能,关闭窗口就是结束程序的意思

那肯定会关闭啊。这是swing的内置机制决定的。关闭主窗口会触发WindowEvent.WINDOW_CLOSING事件,而Swing的默认行为是直接退出程序。要么你设置
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 释放当前窗口资源,但不退出整个程序

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7663559
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:关于微信开发者工具终端窗口不能输入字符问题
  • 除此之外, 这篇博客: 微服务循环依赖问题中的 为什么直到数据库压力被打满才出现接口超时告警? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果有循环依赖,应该测试阶段就已经发现接口请求失败?
    这里原因有二

    1. web端接口超时配置是5min,rpc接口超时配置是1s
    2. a系统和b系统针对对应依赖接口的出错都有容错机制,会自动返回其他正常加载的信息
  • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 循环队列的入队出队扩容操作小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题:关闭窗口导致程序退出,如何处理?

    答:针对不同的系统/软件,处理方法也不同。一般来说,关闭窗口导致程序退出可能是因为没有正确处理窗口关闭事件,或者程序在后台运行时没有正确的托盘处理。以下是一些常见的处理方法:

    1.处理窗口关闭事件:可以通过在程序中监听窗口关闭事件,来保证程序在关闭窗口时做出正确的响应,如保存未完成的工作、弹出确认对话框等。具体实现方式取决于程序所用框架和语言。例如Java Swing中可以通过设置setDefaultCloseOperation()方法来处理此类事件。

    2.实现系统托盘功能:如果程序需要在后台运行,可以实现系统托盘功能,这样当窗口关闭时程序会自动最小化到托盘区,而不是直接退出。具体实现方式也根据不同的系统和语言而异。

    以上是一些通用的处理方式,如果问题具体是某个软件,建议查看该软件的文档或社区,或者联系该软件的支持团队来获取更具体的解决方案。