Java:重置按钮不起作用
Posted
技术标签:
【中文标题】Java:重置按钮不起作用【英文标题】:Java: Reset button isn't working 【发布时间】:2017-09-13 07:53:53 【问题描述】:好的,所以我正在创建这个程序,当您单击重置按钮时,它会关闭程序并从启动时打开一个新的相同程序但是,我无法理解如何做到这一点:/ 这是我的代码按钮..这段代码基本上退出了第一个程序,但它不会在新应用程序中再次打开它。
button1.addActionListener(new ActionListener()
@Override
public void actionPerformed(ActionEvent e)
System.exit(0);
new Tests();
);
【问题讨论】:
System.exit(0)
杀死一切。之后的线路无法到达。如果你换行,它也不起作用——你必须使用System.exit(0)
以外的东西。
System.exit(0);
强制关闭整个虚拟机;之后立即分配的任何内容都将被丢弃。
你应该做一些更“离散”的事情。
你可以使用 this.setVisible(false) 代替 System.exit(0)
他们所说的一切都是真的。因此,您必须创建一个全新的流程,该流程将在该流程的生命周期之外存在。换句话说,System.lang.Runtime.exec("java -jar com.awesome.program.jar")
【参考方案1】:
这段代码基本上退出了第一个程序,但没有打开它 再次在新的应用程序中。
System.exit(0);
终止当前的 JVM 进程。
之后的所有指令都不会执行。
如果你想重启你的应用程序,你应该执行启动你的应用程序的 JVM 的命令。如果是罐子:java -jar yourJar -cp yourClasspath
。
您可以使用 ProcessBuilder
实例来实现它。
另一种方法不是重新启动应用程序,而是将应用程序的状态设置为其初始状态。
【讨论】:
hmm Idk 怎么做这个重置的事情然后:/ 我该怎么做请帮忙 嗯,你能不能给我一个例子:) 第一个,看这个链接:***.com/questions/4159802/…。对于第二个,这取决于您的应用程序。如果你想要一个具体的例子,请编辑并提供更多细节。 顺便说一句,对于一个非常菜鸟的问题很抱歉,但是 jar 到底是什么以及你如何检查名称 没问题 :) jar 是打包类的基本方式。您甚至可以打包成一个可运行的 java 应用程序。如果你不使用 jar,你可以忘记-jar
arg...暂时 :)【参考方案2】:
System.exit(0);
杀死你的整个程序。在你真正完成之前不要使用它。
您需要将整个程序(至少是您要再次执行的部分)放在一个循环中。当您单击重置按钮时,您将回到循环的顶部(或任何您想要的位置)。只要记住要有一个退出条件来终止循环,否则它将永远持续下去。
【讨论】:
你的意思是 while(true) // 运行代码 if(false) 回到起点? while(true) 是一种方法。更好的方法是在 while 循环中实际使用您的条件。我不确定你什么时候用 if(false) 说,因为那永远不会执行。以上是关于Java:重置按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章