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); 

等。

+0

目前尚不清楚你的问题是真的是什么 – 2014-09-27 13:23:09

+0

没有足够的代码也不够的问题的解释这里提供任何答案,是不是猜测。 – 2014-09-27 13:25:03

+0

@Thusitha Thilina Dayaratne我想重新启动我的程序,因此在用户所在的游戏的任何部分,点击重新启动按钮时,游戏将返回到其初始状态,即应用程序第一次跑。 – MattS 2014-09-27 13:27:05

找到了答案,以我自己的问题:

感谢Holger提出“处置”。这是我发现的工作。

private void restartButtonActionPerformed(ActionEvent evt) { 
    if(evt.getSource() == restartButton) 
    { 
     dispose(); 
     MyGUI game = new MyGUI(); 
     game.setVisible(true); 
    } 
} 

首先,我建议特别是进口的JLabel类,所以你可以写的javax.swing.JLabelJLabel代替:

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

+0

他正在使用完全限定名称,因为GUI构建器为他做了。 – user1803551 2014-09-27 16:48:41

+0

@ user1803551是的,你是对的,但在问题发生之后,我决定摆脱发电机,让我有更多的控制权。 – MattS 2014-09-27 19:17:49

那么你可以使用

public void restert(){ 
    Runtime.getRuntime().exec("java -jar yourapp.jar"); 
    System.exit(0); 
} 

如果您想了解更多有关重新启动的Java应用程序,你可以去通过this