Java how to make menu, restart button and .jar file

Hello everyone, I’m new here. I’m working in a game named Spacedodge, though the name isnt chosen yet. Anyway, im beginner in java and need some help with my game.

I don’t like game starting immediately after i open it. So i would like to make a menu, with couple buttons in it. How can i make it, and how can i make it to open before anything else?
I have 7 classes, Craft(it means spaceship), Enemyship, Missile, Craft2, SpaceDodge, Values and Window class. Craft and craft2 are just the players, missile is the missile players can shoot, enemy ship is the enemy(surprise?). SpaceDodge is the window where you can play the game and it makes the window size 400, 300, setDefaultCloseOperation, etc. Window class draws all the images. And I have Values class. It just makes couple variables, and Window and Craft classes extends it. So, how can I make a menu?

Another problem. How can i convert this to a file that can be played without having to open eclipse.(jar file or anything that can be played) I’m using Eclipse. I tried export but there comes and error, “A Java Exception has occurred”. Should i use runnable jar file? If i do, what is the differences of these?

And my third problem is, when the game ends because player dies, it shows String msg. I would like to make a possibility to restart the program by pressing R button.

Thanks for help, tell me if i need to show any line of codes.

This might work for a menu, have a boolean variable you could use your player.alive if you have something like that, instanciate it equal to false so it will be false when you open the game so like
public Boolean alive = false;
then in the game around the loop just put the functions that involve game logic like collision detection in a if statement for example

public void name_of_your_game_loop(){
if(!(player.alive)){
collCheck();
moveStuff();
someotherlogic();
}
repaint();
}
and build meathods that will repaint a menu with buttons when player is dead, then to get input just use KeyListener, to get keyinput for a key press. Or look up MouseListener which you can use to see if mouse has been clicked get the mouses xy position and check if that intersects with any of your buttons

Hi

Maybe try Java Web Start or applets to ease the installation of your game.

For menus and restarting I just use an integer called gameState to keep track of where the game is. That way when you die you can just reset the state and it works. You can just do the same thing for the paint method (break it up into if statements).


private void update()
{
   if(gameState == MENU)
   {
      // update menu stuff here
   }
   else if(gameState == INGAME)
   {
      // update stuff for when the game is playing here
   }
   else if(gameState == DEAD)
   {
      // reset things and go back to INGAME or MENU
   }
}

For deployment I just use a runnable .jar, in Eclipse it’s fairly simple to find a guide on how to do it. If your getting errors then you might not be specifying things right in the export dialog.

If it shows that error when double clicking the jar file, then you have not set the main class. In the last slide of the “create a jar” wizard, the last button lets you choose which class contains the main method.