Probleme d'affichage de Canvas dans un panel - Java - Programmation
MarshPosté le 23-10-2002 à 22:53:00
Bon, mon interface marche bien mais si vous connaissez le principe du mastermind, j'ai un probleme avec l'affichage des rectangles qui representerons les emplacements de la combinaison secrete du mastermind. Je mets le code ci dessous et en gras l'algo d'insertion des canevas qui s'affiche po !
public void paint(Graphics g) { g.setColor(Color.black); g.drawOval(0, 0, 30, 30); //getMaximumSize().width, getMaximumSize().height); } }// fin de la classe PionCanvas
public class buttoncolor extends Button {
Color couleurBouton; buttoncolor(String label, Color couleur) { couleurBouton=couleur; setLabel(label); setBackground(couleur); addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent me) { System.out.println(couleurBouton.toString()); } }); } }// fin de la classe buttoncolor
public class monmasterFrame extends Frame { static final String TITRE="Mastermind by Jardy";
Color bleu=new Color(0, 0, 255); Color rouge=new Color(255, 0, 0); Color vert=new Color(0, 255, 0); Color jaune=new Color(255, 255, 0); Color noir=new Color(0, 0, 0); Color mauve=new Color(255, 0, 255);
Marsh Posté le 23-10-2002 à 22:53:00
Bon, mon interface marche bien mais si vous connaissez le principe du mastermind, j'ai un probleme avec l'affichage des rectangles qui representerons les emplacements de la combinaison secrete du mastermind. Je mets le code ci dessous et en gras l'algo d'insertion des canevas qui s'affiche po !
// On essaye de faire un MasterMind...
// Jardy
package Mastermind;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class monmaster
{
class rectCanvas extends Canvas
{
boolean estRempli;
rectCanvas(boolean b)
{estRempli=b;}
public void paint(Graphics g)
{
if(estRempli)
{g.fillRect(0, 0, 30, 30);}
else
{g.drawRect(0, 0, 30, 30);}
}
}// fin de la classe rectCanvas
class PionCanvas extends Canvas
{
PionCanvas()
{
super();
addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent me)
{
System.out.println("click" );
}
});
}
public void paint(Graphics g)
{
g.setColor(Color.black);
g.drawOval(0, 0, 30, 30); //getMaximumSize().width, getMaximumSize().height);
}
}// fin de la classe PionCanvas
public class buttoncolor extends Button
{
Color couleurBouton;
buttoncolor(String label, Color couleur)
{
couleurBouton=couleur;
setLabel(label);
setBackground(couleur);
addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent me)
{
System.out.println(couleurBouton.toString());
}
});
}
}// fin de la classe buttoncolor
public class monmasterFrame extends Frame
{
static final String TITRE="Mastermind by Jardy";
Color bleu=new Color(0, 0, 255);
Color rouge=new Color(255, 0, 0);
Color vert=new Color(0, 255, 0);
Color jaune=new Color(255, 255, 0);
Color noir=new Color(0, 0, 0);
Color mauve=new Color(255, 0, 255);
Panel panelF=new Panel();
Panel panelP=new Panel();
Panel panelC=new Panel();
Panel panelH=new Panel();
int nbgridPaletteX=1;
int nbgridPaletteY=6;
int nbgridHistoX=10;
int nbgridHistoY=5;
int nbgridCacheX=1;
int nbgridCacheY=4;
monmasterFrame(final String msg)
{
super(TITRE);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{System.exit(0);}
});
// mise en place des panel
add(panelF);
panelF.setLayout(new BorderLayout());
panelP.setLayout(new GridLayout(nbgridPaletteX, nbgridPaletteY));
panelC.setLayout(new GridLayout(nbgridCacheX, nbgridCacheY));
panelH.setLayout(new GridLayout(nbgridHistoX, nbgridHistoY));
panelF.add(panelC, BorderLayout.NORTH);
panelF.add(panelP, BorderLayout.SOUTH);
panelF.add(panelH, BorderLayout.CENTER);
// dessin des couleurs de la palette
panelP.add(new buttoncolor("", bleu));
panelP.add(new buttoncolor("", rouge));
panelP.add(new buttoncolor("", vert));
panelP.add(new buttoncolor("", jaune));
panelP.add(new buttoncolor("", noir));
panelP.add(new buttoncolor("", mauve));
panelP.add(new Button("Jouer" ));
panelP.add(new Button("Corriger" ));
for(int i=0; i<nbgridHistoX; i++)
{
for(int j=0; j<nbgridHistoY; j++)
{
if(compteurPion==5)
{
panelH.add(new rectCanvas(true));
panelH.add(new rectCanvas(false));
compteurPion=0;
}
else
{
panelH.add(new PionCanvas());
}
compteurPion++;
}
}
for(int i=0; i<nbgridCacheY; i++)
{
System.out.println("CA PASSE" );
panelC.add(new rectCanvas(false));
}
setSize(400,600);
//pack();
setResizable(true);
show();
}
}// fin de la classe monmasterFrame
static public String[] Couleurs={"bleu", "rouge", "jaune", "vert", "noir", "mauve"};
int nbCoups=0;
int nbPions=4;
int[] combisecret=new int[4];
int[] combiessai=new int[4];
int[] dejatraiteblanc=new int[4];
int[] dejatraitenoir=new int[4];
public int compteurPion=1;
public String recupererCouleur(int numero)
{
String Couleur= new String(Couleurs[numero]);
return Couleur;
}
public int determinernoirs()
{
int k=0;
for(k=0;k<nbPions;k++) dejatraitenoir[k]=9;
int noirs=0;
for(k=0;k<nbPions;k++)
{
if(combisecret[k]==combiessai[k])
{
dejatraitenoir[k]=combisecret[k];
noirs++;
}
}
return noirs;
}
public int determinerblancs()
{
int k=0;
for(k=0;k<nbPions;k++) dejatraiteblanc[k]=9;
int blancs=0;
int j=0;
for(k=0;k<nbPions;k++)
{
for(j=0;j<nbPions;j++)
{
if(combisecret[k]!=combiessai[k])
{
if(combisecret[j]==combiessai[k])
{
if(combisecret[j]!=dejatraitenoir[j])
{
if(combisecret[j]!=dejatraiteblanc[j])
{
dejatraiteblanc[j]=combisecret[j];
blancs++;
j=nbPions+1;
}
}
}
}
else
{
dejatraiteblanc[k]=combisecret[k];
j=nbPions+1;
}
}
}
return blancs;
}
public void joueruncoup()
{
// essai en dur dans le fichier java
combiessai[0]=1;
combiessai[1]=1;
combiessai[2]=0;
combiessai[3]=0;
for(int z=0;z<nbPions;z++)
{
System.out.println(recupererCouleur(combiessai[z]));
}
// fin de essai en dur
int nbNoirs=determinernoirs();
int nbBlancs=determinerblancs();
System.out.print("Vous avez " );
System.out.print(nbNoirs);
System.out.println(" noirs" );
System.out.print("Vous avez " );
System.out.print(nbBlancs);
System.out.println(" blancs" );
// Test si gagne
}
//constructeur
monmaster()
{
new monmasterFrame("" );
Random unRandom=new Random();
for(int i=0;i<nbPions;i++)
{
int pion=unRandom.nextInt(6);
combisecret[i]=pion;
System.out.println(recupererCouleur(pion));
}
joueruncoup();
}
static public void main(String[] args)
{
monmaster unMaster=new monmaster();
}
}// Fin de la classe monmaster