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
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.
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|