Probleme d'affichage de Canvas dans un panel

Probleme d'affichage de Canvas dans un panel - Java - Programmation

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 !
 

Citation :

// 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

Reply

Marsh Posté le 23-10-2002 à 22:53:00   

Reply

Marsh Posté le 24-10-2002 à 10:21:03    

:??:  
 
personne veu aider mon poto jardy?
 :??:  
 [:totoz]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed