Java应用程序重新启动或重置按钮
我有一个非常简单的选择您正在使用的NetBeans IDE中的路径Java游戏。基本上会发生什么是用户将点击三个按钮之一,并且预设JLabel
的设置为""
(无)将被重置为我决定使用的任何文本。我通过添加下面的代码来做到这一点。Java应用程序重新启动或重置按钮
private void option1ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel6.setText("You go down the dark tunnel...");
}
现在所有这些工作正常,但我想通过单击标签为“重新启动”的按钮来重新启动/重置我的应用程序的方式。我不介意它是否必须关闭应用程序,然后再次打开它,或者它将简单地将所有JLabel重新设置为“”。我只是不想为每个JLabel输入下面的代码。
jLabel1.setText("");
jLabel2.setText("");
jLabel3.setText("");
我已经做到了人提供,似乎对我的情况下工作的代码在这个网站的一些研究,没有,可能是因为它根本不工作,或者因为我做错了什么。任何帮助将不胜感激,请尽量具体,因为我是相当新的写Java和不明白的一切。
这也将工作对我来说,如果有人可以提供一个办法,我在一个应用程序,而不是整个事情关闭1个窗口中,当使用
System.exit(0);
等。
找到了答案,以我自己的问题:
感谢Holger提出“处置”。这是我发现的工作。
private void restartButtonActionPerformed(ActionEvent evt) {
if(evt.getSource() == restartButton)
{
dispose();
MyGUI game = new MyGUI();
game.setVisible(true);
}
}
首先,我建议特别是进口的JLabel类,所以你可以写的javax.swing.JLabel
JLabel
代替:
import javax.swing.JLabel;
而不是声明的每个单独的JLabel的,创造的Jlabel阵列:
JLabel[] jLabels = new JLabel[N]; // where N is the number of JLabels
每当您需要访问JLabel,请使用:
jLabels[6].setText("You go down the dark tunnel...");
如果要重置所有的JLabel,使用方法:
for (JLabel jLabel : jLabels) {
jLabel.setText("");
}
有关阵列的详细信息,如果您有您的程序作为一个可执行的JAR文件读取http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
他正在使用完全限定名称,因为GUI构建器为他做了。 – user1803551 2014-09-27 16:48:41
@ user1803551是的,你是对的,但在问题发生之后,我决定摆脱发电机,让我有更多的控制权。 – MattS 2014-09-27 19:17:49
那么你可以使用
public void restert(){
Runtime.getRuntime().exec("java -jar yourapp.jar");
System.exit(0);
}
如果您想了解更多有关重新启动的Java应用程序,你可以去通过this
目前尚不清楚你的问题是真的是什么 – 2014-09-27 13:23:09
没有足够的代码也不够的问题的解释这里提供任何答案,是不是猜测。 – 2014-09-27 13:25:03
@Thusitha Thilina Dayaratne我想重新启动我的程序,因此在用户所在的游戏的任何部分,点击重新启动按钮时,游戏将返回到其初始状态,即应用程序第一次跑。 – MattS 2014-09-27 13:27:05