Solved

How to restart Java GUI application?

Posted on 2009-04-07
7
745 Views
Last Modified: 2013-11-23
So I ran into this problem while creating a game.  When the user loses he's given the option to play again.  If he says yes, I have to set everything as a new game.

How do I go about doing this?

I mean, is there a simple way to do it?  I have like 100 object and it'd be ridiculous to make new objects.
0
Comment
Question by:ubuntuguy
  • 4
  • 3
7 Comments
 
LVL 1

Accepted Solution

by:
hadesflames5855 earned 500 total points
Comment Utility
try putting it in a while loop. when the game is over, the user is asked to start again, if the user says yes, you start the loop over, else you end the loop and the program is over.
while(a){

//game code

String x = JOptionPane.showInputDialog(null,"Would you like to play again?");

if(x.equalsIgnoreCase("no")

   a = false;

}

JOptionPane.showMessageDialog("Thank you for playing!");

Open in new window

0
 
LVL 1

Author Comment

by:ubuntuguy
Comment Utility
that solution seems to complicated for what i have.  got a game with like 3000 lines of code.  it'll just confuse me.
0
 
LVL 1

Expert Comment

by:hadesflames5855
Comment Utility
not really, you would put the while loop in the main method, and set the frame visiable inside the loop, along with the rest of the game code and pretty much everything.

also instead of the above code also, do this:
while(a){

//game code

Object[] x = {"Yes","No"};

		int y = JOptionPane.showOptionDialog(null, "Would you like to play again?", "My Game", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, x, x[0]);

if(y == 1)

  a = false;

}

JOptionPane.showMessageDialog("Thank you for playing!");

Open in new window

0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 1

Author Comment

by:ubuntuguy
Comment Utility
In my main method?

This is my main method.... I ask the user if they want to keep playing in the game class... so not sure how I would do it inside the main method.


 

public class BattleshipApp {
 
 
 

	public static void main(String[] args) {

		

			

			GameBoard g = new GameBoard();

			g.setVisible(true);

			g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

			

		

			

		}
 

	}

Open in new window

0
 
LVL 1

Expert Comment

by:hadesflames5855
Comment Utility
try this and tell me if it works:


while(a){

GameBoard g = new GameBoard();

g.setVisible(true);                  g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 

Object[] x = {"Yes","No"};

int y = JOptionPane.showOptionDialog(null, "Would you like to play again?", "My Game", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, x, x[0]);

if(y == 1)

  a = false;

}

JOptionPane.showMessageDialog("Thank you for playing!");

Open in new window

0
 
LVL 1

Author Comment

by:ubuntuguy
Comment Utility
Thanks for your help. You code kept showing the would you like to play again message in an infinite loop.  I had to turn in my project already so I just sent what I had.  Thanks for your help again.
0
 
LVL 1

Expert Comment

by:hadesflames5855
Comment Utility
well, did you have a declared as boolean a = true; before the while? I assumed you would do so yourself...I tested this code myself and does not lead to an infinite loop....
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

How to install Selenium IDE and loops for quick automated testing. Get Selenium IDE from http://seleniumhq.org (http://seleniumhq.org) Go to that link and select download selenium in the right hand columnThat will then direct you to their downlo…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now