begin process at 2010 02 10 10:35:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Applet

 > 

Probleme de lancement de deux applets successifs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de lancement de deux applets successifs

dimanche 25 décembre 2005 à 13:20:07 | Probleme de lancement de deux applets successifs

rideom

Je code actuellement un P4, j'ai un applet qui fait office de fenetre de jeu, et un second que je veu afficher quand la partie est remporté.

J'utilise également pour lancer mon jeu la commande appletviewer.
Tout compile et se lance, mais probleme ,  lorsqu'un des joueurs gagne la partie, le second applet ne s'affiche pas pour annoncer la victoire....

Alors je voulais savoir :
- si mon code peut etre retapé pour que ca  fonctionne avec 2 applets et ma commande de lancement pourrie
- ou si avec appletviewer je peu quand meme afficher des JFrame, ou autres... (et dans ce cas comment)
- ou bien en degageant ma commande et en utilisant un autre mode de lancement (si oui lequel)

J'ai 4 classes pour mon p4, je vous joint seulement ma classe P4 (fenetre de jeu) et ma classe Victoire (Qui marche pas) :

[code]
import java.applet.Applet ;
import java.awt.* ;
import java.awt.event.* ;
import java.awt.Color ;
import java.lang.*;
import java.io.*;
import javax.swing.*;


/** PUISSANCE4 est un jeu à deux joueurs …
*   @author Pierre Martin
*   @version 1.0 */
public class P4 extends Applet
            implements ActionListener
{

public static final int NBCOLONNE=7 ;
/** tableau de 7 colonnes pour représenter l’état du jeu (la grille) */

private Colonne [] Grille=new Colonne[NBCOLONNE];
/** le jeton à déposer sur la grille */

private int num_coup ;

private int derniere_Colonne;

private Jeton leJeton ;

private Button B_Annuler;

private Button B_Rejouer;

private JLabel I_Logo;

private JTextField T_Annonces;
private JTextField T_Annonces2;

private JPanel Pano_Haut;
private JPanel Pano_Centre;
private JPanel Pano_Bas;

/* disposition des elements dans la fenetre */
private GridLayout Disposition;



public void init() {
   
    /* configuration de l'applet*/
    resize(720,700);
    setBackground(Color.white);
   
    /* configuration du panneau haut*/
    Pano_Haut= new JPanel(new GridLayout(2,1));
    Pano_Haut.setBackground(Color.black);
   
    /* configuration du panneau central (il contiendra la grille) */
    Disposition = new GridLayout(1,7);
    /* Simulation du quadrillage (ligne) avec des sauts entre chaque composants */
    Disposition.setHgap(1);
    Pano_Centre = new JPanel(Disposition);
    Pano_Centre.setBackground(Color.gray);
    Pano_Centre.setSize(new Dimension(1200,1200));
   
    /*configuration du panneau bas*/
    Pano_Bas  = new JPanel(new GridLayout(1,2));
    Pano_Bas.setBackground(Color.black);
           
    /*création du logo */
    I_Logo = new JLabel(new ImageIcon("logo.jpg"));
   
    /* création et configuration du boutton annuler*/
    B_Annuler = new Button ("Annuler");
    B_Annuler.setFont(new Font("Tahoma", Font.BOLD|Font.ITALIC, 16));
    B_Annuler.setForeground(Color.gray);
    B_Annuler.setBackground(Color.black);
    B_Annuler.setEnabled(false);
    B_Annuler.addActionListener(this);
   
    /* création et configuration du boutton rejouer*/
    B_Rejouer = new Button ("Nouvelle Partie");
    B_Rejouer.setFont(new Font("Tahoma", Font.BOLD|Font.ITALIC, 16));
    B_Rejouer.setForeground(Color.gray);
    B_Rejouer.setBackground(Color.black);
    B_Rejouer.addActionListener(this);
   
    /* initialisation du numero courant du coup */
    num_coup = 1;
   
    /* création et configuration du l'annonceur des tours */
    T_Annonces = new JTextField("DEBUT DE LA PARTIE : COUP N°"+num_coup+" : JOUEUR ROUGE, C'EST A VOUS DE JOUER",300);
    T_Annonces.setForeground(Color.red);
    T_Annonces.setBackground(Color.black);
    T_Annonces.setFont(new Font("Tahoma", Font.BOLD|Font.ITALIC, 16));
    T_Annonces.setHorizontalAlignment(JTextField.CENTER);
    T_Annonces.setVisible(true);
    T_Annonces.setEditable(false);
   
    /* ajout des composants du panneau haut */
    Pano_Haut.add(I_Logo);
    Pano_Haut.add(T_Annonces);
   
    /* ajout des composants du panneau central (grille de jeu) */
    for (int col=0 ; col<NBCOLONNE ; col++){
        Grille[col]=new Colonne(col);
        Pano_Centre.add((this.Grille[col]).getPano_Col()) ;
        Grille[col].bouton.addActionListener(this);
    }
   
    /* ajout des composants du panneau bas */
    Pano_Bas.add(B_Annuler);
    Pano_Bas.add(B_Rejouer);
   
    /* ajout des 3 panels à l'applet */
    add("North",Pano_Haut);
    add("Center",Pano_Centre);   
    add("South",Pano_Bas);
   
   
    /* initialisation de la derniere colonne remplie par les joueurs */
    derniere_Colonne = -1;
   
    /* creation du jeton courant */
    leJeton = new Jeton();
   
    /* initialisation de la grille en mémoire */
    initGrille() ;
}

private void initGrille() {
/*commencer avec un jeton rouge*/
    leJeton.setCouleur(Color.red) ;
    for (int col=0 ; col<NBCOLONNE ; col++) {   
        /* activation de tous les boutons en haut de olonne */
        this.Grille[col].bouton.setEnabled(true);
        this.Grille[col].initCellules();
        /* dans le cas ou l'on demande un renouvellement de partie,
         * on vide la fenetre graphique des images associées a
         * la partie précédente */
        if (this.derniere_Colonne != -1)
            this.Grille[col].initCol();
        }
}

/* permet de demarrer une autre partie en réinitialisant uniquement le necessaire */
public void une_Autre_Partie(){
    /* on réinitialise la grille (et le jeton), le coup,
         * on desactive le bouton annuler, et on remet la derniere
         * colonne à l'état d'hors grille */
        initGrille();
        this.num_coup = 1;
        this.B_Annuler.setEnabled(false);
        this.derniere_Colonne = -1;
        /* on remet le texte d'annonce sur debut de partie */
        this.T_Annonces.setText("DEBUT DE LA PARTIE : COUP N°"+num_coup+" : JOUEUR ROUGE, C'EST A VOUS DE JOUER");
        this.T_Annonces.setForeground(Color.red);    
}


/** Dessiner la grille et les jetons
*   colonne par colonne
*   @param le contexte graphique */   
public void paintComponent(Graphics g){
   super.paintComponents(g);
  
     
}

/**  Réagir à l'action d'un joueur sur un bouton de colonne
*    @param le numero du bouton de colonne (de 0 a NBCOLONNE-1)
*/

private void reagirActionBoutonColonne(int col) {
if (Grille[col].ajouterJeton(leJeton.getCouleur())){
/*on a pu ajouter un jeton dans la colonne*/
/*on stock la derniere colonne (pour l'operation annuler et,
  on change la couleur du jeton pour le coup suivant*/
        this.derniere_Colonne = col;
       
       
}
}

/** Obtenir le numéro de la colonne
*    (un int entre 0 et 6) 
*     à partir du nom du bouton
*     (une String parmi "C0",..,"C6")
*    @param évènement qui indique une action
*    sur le bouton
*    @return le numéro de la colonne */

    private int getNumColonne(ActionEvent e){
        String actionCommand = e.getActionCommand();
        return Integer.parseInt(actionCommand.substring(1,2));
    }


/**
*    Méthode exécutée dès qu'un bouton est enfoncé
*   @param événement qui indique une action sur
*   le bouton */
public void actionPerformed(ActionEvent e) {
   
    if (e.getActionCommand().equals("Annuler")) {
        leJeton.changerCouleur();
        num_coup--;
          if (leJeton.getCouleur().equals(Color.yellow)){
            T_Annonces.setText("COUP N°"+num_coup+" : JOUEUR JAUNE, C'EST A VOUS DE JOUER");
            T_Annonces.setForeground(Color.yellow);
        }
        else {
            T_Annonces.setText("COUP N°"+num_coup+" : JOUEUR ROUGE, C'EST A VOUS DE JOUER");
            T_Annonces.setForeground(Color.red);
        }
          Grille[derniere_Colonne].retirerJeton();
          B_Annuler.setEnabled(false);
     
      /* on revient sr le coup, la couleur
       * du jeton courant doit alors changer */
     
      }
    else if (e.getActionCommand().equals("Nouvelle Partie")) {
        une_Autre_Partie();
    }
   
    else {
        /*un joueur a cliqué sur un bouton de colonne*/
        reagirActionBoutonColonne(getNumColonne(e));
        /* aprés l'ajout du pion, on verifie si il ya 4 pions alignes  */
        /* cas 1: 4 pions alignes, partie finie */
        if (verif_P4()){
            /* faire un truc mieu avec une boie de dialogue et tout et tout!!
             * avec import d'image genre un qui est content Et l'autre qui l'est pas */
            if (leJeton.getCouleur().equals(Color.red)){
                T_Annonces.setText("COUP N°"+num_coup+" : VICTOIRE DES ROUGES !!!");
                }
            else {
                T_Annonces.setText("COUP N°"+num_coup+" : VICTOIRE DES JAUNES !!!");
                }
            Applet V= new Victoire();
            V.setVisible(true);
        }
        /* cas 2: la partie continue */
        else{
            /* on passe au tour suivant */
            leJeton.changerCouleur();
            num_coup++;
            if (leJeton.getCouleur().equals(Color.yellow)){
                T_Annonces.setText("COUP N°"+num_coup+" : JOUEUR JAUNE, C'EST A VOUS DE JOUER");
                T_Annonces.setForeground(Color.yellow);
            }
            else {
                T_Annonces.setText("COUP N°"+num_coup+" : JOUEUR ROUGE, C'EST A VOUS DE JOUER");
                T_Annonces.setForeground(Color.red);
            }
           
       
            B_Annuler.setEnabled(true);       
            }
       
        }
    /*mettre à jour l'affichage de la grille*/    
    repaint();
}

/* permet d'afficher dans le terminal la représentation en mémoire de la grille
 * (cellule) et non pas la représentation graphique comme dans l'applet*/
public void Display_Grille(){
    for (int j=0;j<6;j++){
        for (int i=0;i<NBCOLONNE;i++){
            if (this.Grille[i].cellule[j].equals(Color.red))
                System.out.print("[rouge] ");
            else if (this.Grille[i].cellule[j].equals(Color.yellow))
                System.out.print("[jaune] ");
            else
                System.out.print("[     ] ");   
            }
        System.out.println();
        }   
    System.out.println();
    }
   
/* effectue la comparaison de deux pions suivant leur couleur
 * renvoi vrai si les dux pions sont de la meme couleur */   
public boolean Test_Couleur(int i, int j , Color c){
    /* si le pion presumé etre voisin est en dehors de la grille */
    if ((i > 6) || ( j > 5) || ( j < 0) || (i < 0))
        return false;
    /*  si le pion voisin a la meme couleur que le pion dernierement ajoute
     * (voisinage =  3 pions à la ronde ) */   
    else if (Grille[i].cellule[j].equals(c)){
    return true;
    }   
    /* si le pion voisin n'est pas de la meme couleur */
    else{
    return false;
    }
}

/* verifie si il y a présence de 4 pions alignes verticalement */ 
public boolean Test_Bas(int i,int j,Color coul, int nb_Suite){
    if (nb_Suite==4)
        return true;
    else
        if(Test_Couleur(i,j,coul)){
            /*nb_Suite++;*/
            return Test_Bas(i,j-1,coul,nb_Suite+1);
            }
        else /* couleur differente */
            return false;
}

/* verifie si il y a présence de 4 pions alignes horizontalement */ 
public boolean Test_Horizontal(int i,int j,Color coul){   
    /* si les deux pions cote a cote sont de la meme couleur */
    if (Test_Couleur(i-1,j,coul) && Test_Couleur(i+1,j,coul)){
        /* si il y en a au moins un en bordure qui est de la meme couleur */
        if (Test_Couleur(i-2,j,coul) || Test_Couleur(i+2,j,coul)){
            return true;
        }
        else
            return false;
    }
    else if (Test_Couleur(i-1,j,coul)){ /* meme couleur seulement a gauche */
        if (Test_Couleur(i-2,j,coul) && Test_Couleur(i-3,j,coul))
            return true;
        else
            return false;
    }
    else if (Test_Couleur(i+1,j,coul)){ /* meme couleur seulement a droite */       
        if (Test_Couleur(i+2,j,coul) && Test_Couleur(i+3,j,coul))
            return true;
        else
            return false;
    }
    else
        return false;
}

/* verifie si il y a présence de 4 pions alignes diagonalement
 * suivant un axe SudEst / NordOuest */ 
public boolean Test_SudEst_NordOuest(int i,int j,Color coul){   
    /* si le pion NordOuest et le pion SudEst ont memes couleurs */
    if (Test_Couleur(i+1,j-1,coul) && Test_Couleur(i-1,j+1,coul)){
   
        if (Test_Couleur(i+2,j-2,coul) || Test_Couleur(i-2,j+2,coul))
            return true;
        else
            return false;
    }
    /* si uniquement le pion SudEst est de la meme couleur
     * on balaye  alors dans cette axe */        
    else if (Test_Couleur(i+1,j-1,coul)){
        if (Test_Couleur(i+2,j-2,coul)&& Test_Couleur(i+3,j-3,coul))
            return true;
        else
            return false;
    }
    /* si uniquement le pion NordOuest est de la meme couleur
     * on balaye  alors dans cette axe */
    else if (Test_Couleur(i-1,j+1,coul)){
        if (Test_Couleur(i-2,j+2,coul)&& Test_Couleur(i-3,j+3,coul))
            return true;
        else
            return false;
       
    }
    else {
   
        return false;
    }
}

/* verifie si il y a présence de 4 pions alignes diagonalement
 * suivant un axe SudOuest / NordEst */ 
public boolean Test_SudOuest_NordEst(int i,int j,Color coul){   
    /* si le pion NordEst et le pion SudOuest ont memes couleurs */
    if (Test_Couleur(i+1,j+1,coul) && Test_Couleur(i-1,j-1,coul)){
   
        if (Test_Couleur(i+2,j+2,coul) || Test_Couleur(i-2,j-2,coul))
            return true;
        else
            return false;
    }
    /* si uniquement le pion NordEst est de la meme couleur
     * on balaye  alors dans cette axe */        
    else if (Test_Couleur(i+1,j+1,coul)){
        if (Test_Couleur(i+2,j+2,coul)&& Test_Couleur(i+3,j+3,coul))
            return true;
        else
            return false;
    }
    /* si uniquement le pion SudOuest est de la meme couleur
     * on balaye  alors dans cette axe */
    else if (Test_Couleur(i-1,j-1,coul)){
        if (Test_Couleur(i-2,j-2,coul)&& Test_Couleur(i-3,j-3,coul))
            return true;
        else
            return false;
       
    }
    else {
   
        return false;
    }
}

   
/* effectue la verification du p4 (4 pions alignes), elle effectue son travail uniquement
 * à partir de la position du dernier pion ajouté */   
public boolean verif_P4(){
   
    /* on recupere les coordonnées du dernier pion ajouté */
    int i = this.derniere_Colonne;
    int j = this.Grille[i].getCelluleLibre()-1;
   
    /* on recupere la couleur du dernier pion ajouté */
    Color coul=this.Grille[i].cellule[j];
   
    /* on fractionne le test en 4 bouléens */


    /* test bas */
    boolean verif_Bas;
    if (j<3) /* pas besoin de descendre pour tester */
        verif_Bas=false;
    else
        verif_Bas=Test_Bas(i,j-1,coul,1);
   
    /* test horizontal */   
    boolean verif_Horiz=Test_Horizontal(i,j,coul);
   
    /* tests en diagonale */
    boolean verif_SONE=Test_SudOuest_NordEst(i,j,coul);
    boolean verif_SENO=Test_SudEst_NordOuest(i,j,coul);
   
   
    /* Display_Grille(); */
    return verif_Bas || verif_Horiz || verif_SONE || verif_SENO;
   
   
}   


} // fin class P4

[/code]

[code]

// la class victoire

import javax.swing.*;
import java.applet.Applet ;
import java.awt.event.*;
import java.awt.*;

public class Victoire extends P4 {

    private Jeton joueur_Gagnant;
   
    private JLabel T_AnnoncesV;
   
    private JLabel T_AnnoncesV2;
   
    private JLabel I_Victory;
   
    private JLabel I_Victory2;
   
    private Button B_Quit;
   
    private Button B_Nouvelle_Partie;
   
    private P4 Jeu;
   
    /* constructeur de victoire */
    public void init(){
       
        /* nommage de la fenetre (titre dans la barre) */
        /* super("La partie !"); */
       
        /* enregistrement local de la couleur du joueur gagnant */
        this.joueur_Gagnant.setCouleur(Color.red);
       
        /* création des écouteurs pour les futurs boutons */
       
        ActionListener Act_List_Quit = new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                System.exit(0);
           
            }
        };
       
        ActionListener Act_List_NP = new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                une_Autre_Partie();   
            }
        };
       
        /* création des boutons Nouvelle partie et Quitter le jeu*/
        B_Nouvelle_Partie=new Button("Nouvelle partie?");
        B_Quit =new Button("Quitter le Jeu?");
        B_Quit.setFont(new Font("Tahoma", Font.BOLD|Font.ITALIC, 16));
        B_Quit.setForeground(Color.gray);
        B_Quit.setBackground(Color.black);
        B_Quit.setEnabled(false);
        B_Nouvelle_Partie.addActionListener(Act_List_NP);
        B_Quit.addActionListener(Act_List_Quit);
       
        /* Création du JPanel qui contiendra les boutons */
        JPanel P_Bouton=new JPanel();
       
        /* Ajout des boutons au panel */
        P_Bouton.add(B_Nouvelle_Partie);
        P_Bouton.add(B_Quit);
       
        /* Création des JLabels Victoire qui contient les textes */       
        if (joueur_Gagnant.getCouleur().equals(Color.red))
            T_AnnoncesV=new JLabel("Félicitations Joueur Rouge !",(int) JLabel.CENTER_ALIGNMENT);
        else
            T_AnnoncesV=new JLabel("Félicitations Joueur Jaune !",(int) JLabel.CENTER_ALIGNMENT);
        T_AnnoncesV2=new JLabel("Vous avez gagné !", (int) JLabel.CENTER_ALIGNMENT);
       
        /* Création des JLabels Victoire qui contient les images */
        if (joueur_Gagnant.getCouleur().equals(Color.red)){
            I_Victory=new JLabel(new ImageIcon("victoire_rouge.gif"));
            I_Victory2=new JLabel(new ImageIcon("defaite_jaune.gif"));
            }
        else {
            I_Victory=new JLabel(new ImageIcon("victoire_jaune.gif"));
            I_Victory2=new JLabel(new ImageIcon("defaite_rouge.gif"));
        }
       
        /* Création des JPanels */
        JPanel P_Vic1=new JPanel(new BorderLayout());
        JPanel P_Vic2=new JPanel(new BorderLayout());
       
        /* Ajout des Images */
        P_Vic1.add(I_Victory,BorderLayout.EAST);
        P_Vic1.add(I_Victory2,BorderLayout.WEST);
       
        /* Ajout des Textes et des Boutons */
        P_Vic2.add(T_AnnoncesV,BorderLayout.NORTH);
        P_Vic2.add(T_AnnoncesV2,BorderLayout.CENTER);
        P_Vic2.add(P_Bouton,BorderLayout.SOUTH);
       
        /* Fusion des deux JPanels */
        P_Vic1.add(P_Vic2,BorderLayout.CENTER);
       
        /* Affectation du JPanel à la JFrame */
        this.add(P_Vic1);
    }
   
   
}

[/code]

D'avance merci à tous ....!






Cette discussion est classée dans : couleur, test, return, color, coul


Répondre à ce message

Sujets en rapport avec ce message

Modifier des éléments créé par une fonction [ par - Albat - ] Bonjour, j'ai une question, p-e simple pour les connaisseurs mais pour ma par je ne trouve pas comment fairej'ai la fonction suivante static void cre bufferedImage encore... [ par snipingfafa ] Hello,Dans un dessin à main levée, je voudrais changer de couleur sans effacer mon dessin, donc mettre mon dessin dans une bufferedImage.Je ne sais pa Couleur du texte d'un jTree [ par metalkev64 ] Salut,Voilà j'ai un problème niaiseux, tellement niaiseux que je trouve pas la solution car tous me semble bon dans le code mais pas le résultat, alor developpement java [ par lotfiderbali ] Bon apres midi SVP comment faire pour pour chercher un Test selon  (idtest, ou libelletest, ou textexplicatif est ce exact? [ par ptit pimousse ] Voilà j'ai un code qui me parait tout à fait correctJe suis sous eclipse, quand je lance l'application ca marchej'exporte en jar j'installe je lance m couleur JProgressBar [ par def95 ] Je voudrais modifier la couleur de la barre d'une JProgressBar avec la methode paintComponent mais il n'y a aucun resultat. Est-ce qu'il y aurai une a JTable éditeur de couleur [ par jc_romeo ] BonjourJe voudrais faire une JTable avec le fait que quand on clique sur une des cases on puisse changer sa couleur de fond.j'ai donc créer la classe: [Border JTextField] : Changement de couleur de la bordure d'un JTextField [ par Foub ] Bonjour, dans mon application, je souhaite changer la couleur de la bordure de mes JTextField lorsque ces derniers récupèrent le focus, comme sur le s JTextPane et couleur... [ par arnauddevasselot ] Bonjour,Je voudrais savoir comment attribuer deux styles differents a un JTextPane?J'aimerais ecrire en rouge et en gras a la fois. Mais je n'ecrit qu Couleur de sélection dans un JComboBox [ par Foub ] Bonjour, je souhaiterais pouvoir changer la couleur de sélection dans un JComboBox.Comment puis-je faire cela ? Merci beaucoup. F.


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales