2014-09-27 3 views
0

У меня очень простой, выберите свой путь, Java-игру, над которой я работаю в среде IDE NetBeans. В основном, что произойдет, пользователь нажмет одну из трех кнопок, и предварительно сделанные 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

Не ясно, на самом деле, что ваша проблема –

+0

Существует не хватает коды, ни достаточно объяснения проблемы здесь, чтобы предоставить какие-либо ответ, который не догадки. –

+0

@Thusitha Thilina Dayaratne Я хотел бы перезапустить свою программу, поэтому в любой части игры, на которой пользователь находится, когда нажата кнопка перезапуска, игра вернется к своему начальному состоянию, когда она была в момент, когда приложение было первым запустить. – MattS

ответ

0

Найден ответ на мой собственный вопрос:

Благодаря Хольгеру за предложение «распоряжаться». Это то, что я нашел.

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

Во-первых, я рекомендую импортировать класс JLabel специально, так что вы можете написать JLabel вместо javax.swing.JLabel:

import javax.swing.JLabel; 

Вместо того, чтобы объявить каждого JLabel индивидуально, создать массив JLabels:

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(""); 
} 

Для получения более подробной информации о массивах, читайте http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html

+0

Он использует полные имена, потому что создатель GUI сделал, если для него. – user1803551

+0

@ user1803551 Да, вы правы, но сразу после вопроса я решил избавиться от генератора, поэтому у меня больше контроля. – MattS

0

Если вы имеете программу в качестве исполняемого файла банки, то вы можете использовать

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

Если вы хотите узнать больше о перезапуске приложения Java вы можете пройти через this

Смежные вопросы