如何使用始终在顶部的对话框结束 Swing 程序



如何完成程序?我的意思是,在执行它并关闭对话框后,Java 进程没有完成。它可以在Eclipse中查看,因此红色图标仍然处于活动状态,程序不会完成。

import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Main {
    public static void main(String[] args) {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setAlwaysOnTop(true);
        JOptionPane.showMessageDialog(
            frame, "test info", "test header", JOptionPane.INFORMATION_MESSAGE);
    }
}

对话框设置为可见后释放框架。

import javax.swing.*;
public class Main {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setAlwaysOnTop(true);
        JOptionPane.showMessageDialog(
            frame, "test info", "test header", JOptionPane.INFORMATION_MESSAGE);
        // When a frame is disposed, the exit action will be called.
        frame.dispose();
    }
}
您可以使用

以下关闭过程。但这有点难。

System.exit(0);

因为你没有调用这样的方法: frame.show();frame.setVisible(true);

如果调用其中一个方法,则帧将显示,然后如果关闭帧,它将停止运行。

代码更新:

     private static void createAndShowGUI() {
        JFrame frame = new JFrame("frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setAlwaysOnTop(true);
        frame.setSize(200, 200);
        frame.setVisible(true);
        JOptionPane.showMessageDialog(frame, "test info", "test header", JOptionPane.INFORMATION_MESSAGE);
    }

相关内容

  • 没有找到相关文章

最新更新