如何使用always-on-top对话框结束Swing程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用always-on-top对话框结束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);
}
以上是关于如何使用always-on-top对话框结束Swing程序?的主要内容,如果未能解决你的问题,请参考以下文章