我有一个Java swing启动程序来启动另一个类(运行它的main方法)。 每个程序都有取消按钮退出自己。
按下此取消按钮时,我使用System.exit(0);
。
启动程序在actionPerformed
中执行此操作:
if (source==carMenuItem) {
ta.append("Car launched\n");
TestCar.main(par);
}
if (source==DialogboxMenuItem) {
ta.append("Dialogbox launched\n");
DialogBox.main(par);
}
if (source==LengthConversionMenuItem) {
ta.append("LengthConversion launched\n");
LengthConversion.main(par);
}
当我按下程序的取消按钮时,它也会关闭我的启动程序。我该如何避免这种情况?
答案 0 :(得分:2)
System.exit()终止VM,因此您的初始线程也会终止,只需从main()方法返回。
在查看代码之后:并非所有类都应该具有main()方法(如果不是也单独使用)。您应该考虑调用构造函数来创建类的实例,并调用一个名为main()的方法。
答案 1 :(得分:2)
或者您可以使用dispose()
方法代替System.exit()
: - 因为System.exit()
将终止自己的总申请。
或者您可以将setVisible()
视为false。
答案 2 :(得分:2)
您必须实施WindowListener及其WindowEvents
,示例here
另一个选项是setDefaultCloseOperation正确
答案 3 :(得分:1)
使用System.exit你不能。这将终止整个JVM及其中的所有进程。