Solved

How to restart Java GUI application?

Posted on 2009-04-07
7
761 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
ID: 24093209
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
ID: 24093218
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
ID: 24093265
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
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 
LVL 1

Author Comment

by:ubuntuguy
ID: 24093305
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
ID: 24093320
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
ID: 24093544
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
ID: 24093884
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

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Java JRE greater than 1.6 5 63
xampp tool 12 50
difference of if loops 23 49
Chrome and Firefox Java 5 32
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…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

777 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