Accueil > Forum > > > > Probleme de lancement de deux applets successifs
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
developpement java [ par lotfiderbali ]
Bon apres midi SVP comment faire pour pour chercher un Test selon (idtest, ou libelletest, ou textexplicatif
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
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.
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|