[JAVA ] relancer le main
pr
-
rodoplop Messages postés 77 Statut Membre -
rodoplop Messages postés 77 Statut Membre -
Bonjour,
J'ai deux classe :
et
Lorsque j'appuie sur le bouton stop dans vueJeu, une Joption pane me demande de choisir si je veux relancer ou pas.
Je ne sais pas comment faire pour relancer la premiere classe qui contient le main lorsque je clique sur oui.
Merci d'avance
J'ai deux classe :
public class Lancement {
/** Creates a new instance of Lancement */
public Lancement() {
}
/**
*
* @param args
*/
public static void main(String[] args) {
Jeu jeu = new Jeu(750, 1000, 200, 345);
ArrayList<Arme> armes = new ArrayList<Arme>();
Dimension dim = new Dimension(500, 800);
jeu.initSimulation();
vueJeu vue = new vueJeu(jeu);
//Vue vueJ = new Vue(jeu);
}
}
et
public class vueJeu implements interfaces.Observateur {
private Jeu jeu;
private JFrame fenetre = new JFrame("Une partie");
...
bStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ImageIcon img = new ImageIcon("./src/vue/Images/win.png");
vueJeu.this.jeu.setFinPartie(true);
vueJeu.this.bStop.setEnabled(false);
if (vueJeu.this.jeu.getScoreCourant() >= vueJeu.this.jeu.getObjectifScore()) {
JOptionPane.showMessageDialog(vueJeu.this.fenetre, "<html><b>Vous avez gagné !!!!!</b> ", "Résultat", JOptionPane.INFORMATION_MESSAGE, img);
} else {
JOptionPane.showMessageDialog(vueJeu.this.fenetre, "Vous avez perdu", "Résultat", JOptionPane.INFORMATION_MESSAGE);
}
if(vueJeu.this.rejouer()==false){
System.exit(0);
}
}
....
public boolean rejouer() {
boolean rejouer=true;
int option = JOptionPane.showConfirmDialog(null, "Voulez-vous rejouer ?", "Rejouer", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (option == JOptionPane.OK_OPTION) {
rejouer = true;
} else if(option == JOptionPane.NO_OPTION || option == JOptionPane.CANCEL_OPTION || option == JOptionPane.CLOSED_OPTION){
rejouer=false;
}
return(rejouer);
}
});
Lorsque j'appuie sur le bouton stop dans vueJeu, une Joption pane me demande de choisir si je veux relancer ou pas.
Je ne sais pas comment faire pour relancer la premiere classe qui contient le main lorsque je clique sur oui.
Merci d'avance
A voir également:
- [JAVA ] relancer le main
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
3 réponses
Le plus simple vu ton architecture en deux classes est de faire un appel static :
if (option == JOptionPane.OK_OPTION)
Lancement.main(null); // remplacer null par String[] args si nécessaire
Netbeans s'octroie de toute évidence des privilèges qui ne devrait pas être, la méthode main est une méthode comme une autre, et puisqu'elle est static, elle devrait pouvoir être appelée comme je l'ai montrée.
Exemple bidon :
Exemple bidon :
public class A
{
public static void main(String[] args)
{
System.out.println("A");
}
}
public class B
{
public static void main(String[] args)
{
System.out.println("B");
for (int i=0; i<5; i++)
A.main(args);
}
}
Bonjour,
Dans ton cas, pour relancer le jeu, tu doit relancer une instance de ta classe Lancement (le main est exécuté quand tu instancie ta classe)
le mieux étant de gérer le lancement de ton jeu dans une méthode autre que le main(). Par exemple : une méthode initJeu()
Ensuite tu n'aura plus qu'à appeler cette méthode lorsque tu veux relancer ton jeux.
Maintenant, à voir
Dans ton cas, pour relancer le jeu, tu doit relancer une instance de ta classe Lancement (le main est exécuté quand tu instancie ta classe)
le mieux étant de gérer le lancement de ton jeu dans une méthode autre que le main(). Par exemple : une méthode initJeu()
Ensuite tu n'aura plus qu'à appeler cette méthode lorsque tu veux relancer ton jeux.
Maintenant, à voir