IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Reaffichage applet grille


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Reaffichage applet grille
    Bonjour,

    Je suis en train de réailiser un petit jeu en applet avec une grille et des croix à tracer dedans.
    Quand je clique sur une case, ça m'affiche bien ma croix.
    Mais je n'arrive pas à conserver en mémoire mes anciens coup et donc pouvoir afficher plusieurs croix à la fois.
    Je vous met mon code, si qq peut me dire comment faire, merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    //<applet Code="Jeu.class" width=1000 height=600> </applet>
     
    import java.applet.Applet;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.util.*;
     
    //Classe correspondant à la grille
     
    public class Grille extends Applet 
    {
     
    int a,b;
    int L=1000; //Longueur de la fenetre
    int l=600;  //Largeur de la fenetre
    //coordonnees du coint droit du carre
    int x0=400; 
    int y0=150;	
    int k=3; //Valeur pour déterminer la taille de la grille
     
    //Definition d'un tableau a  deux dimensions
    int T[][]=new int[k][k];
     
     
    public void init()
    {
     this.addMouseListener(new Souris(this));
     for(int i=0;i<k;i++)
     { for(int j=0;j<k;j++)
        {T[i][j]=0;} // On initialise toutes les cases à zéro
     }
    }
     
    void f(int r,int t)
    {
     a=r;
     b=t;
     repaint();
    }
     
    void dessinercroix(float x,float y,Graphics g)
    {
    	for(int i=0;i<k;i++)
    	{ for(int j=0;j<k;j++)
    	   {
    	     if(x>x0+i*(400/k)&&x<x0+(i+1)*(400/k)&&y>y0+j*(400/k)&&y<y0+(j+1)*(400/k))
    	       { g.setColor(Color.red);
    	         g.drawLine(x0+i*(400/k),y0+j*(400/k),x0+(i+1)*(400/k),y0+(j+1)*(400/k));
    	         g.drawLine(x0+i*(400/k),y0+(j+1)*(400/k),x0+(i+1)*(400/k),y0+j*(400/k));
                         T[i][j]=1;
    	       }
    	    }
    	}
    }
     
    void dessinerrond(float x,float y,Graphics g)
    {
    	for(int i=0;i<k;i++)
    	{ for(int j=0;j<k;j++)
    	   {
    	     if(x>x0+i*(400/k)&&x<x0+(i+1)*(400/k)&&y>y0+j*(400/k)&&y<y0+(j+1)*(400/k))
    	       { g.setColor(Color.blue);
    	         g.fillOval(x0+i*(400/k),y0+j*(400/k),(400/k),(400/k));
    	         T[i][j]=1;
    	       }
    	    }
    	}
    }
     
     
     
    public void paint(Graphics g)
    {
     
    g.setFont(new Font("TimesRoman",Font.BOLD,30));
    g.drawString("Tic-Tac-Toe",500,50);
     
    //Trace de la grille
     
    	for(int i=0;i<k;i++)
    	{		
    	 for(int j=0;j<k;j++)	
    	  {
    	   g.drawRect(x0+i*(400/k),y0+j*(400/k),(400/k),(400/k));	
    	  } 
    	} 
     
    //Trace des éléments de la grille
     
     
    	dessinercroix((float)a,(float)b,g);
    	 // dessinerrond((float)a,(float)b,g);
     
     
    }//Fin de la fonction paint
     
     
    }//Fin de la classe Grille
     
     
    //Classe Souris
    class Souris extends MouseAdapter
    {
     Grille a;
     
    //Constructeur de la classe Souris
    Souris(Grille x)
    {
     a=x;
    }
     
    public void mouseClicked(MouseEvent m)
    {
     int x=m.getX();
     int y=m.getY();
     a.f(x,y);
    }
     
    } //Fin de la classe Souris

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2002
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 233
    Par défaut
    Qd tu appelles la méthode repaint() d'une applet, ca appelle la méthode update de la classe applet qui supprime l'affichage avant d'appeler la méthode paint, donc soit tu redéfinis la méthode update comme ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void update(Graphics g)
    {
    	paint(g);
    }
    et ainsi tu as juste a afficher dans la méthode paint la nouvelle croix puisque l'affichage de ta grille et de tes précédentes croix n'est pas effacée.

    Sinon il faut stocker toute tes croix dans une List<Point> par exemple, et la parcourir en les réaffichant dans ta méthode paint

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut
    Super, merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. jaimerais savoir commen creer une grille.......
    Par zephyr dans le forum Flash
    Réponses: 5
    Dernier message: 29/04/2003, 12h14
  2. [WSAD] Composition visuelle d'une applet
    Par schum11 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/04/2003, 16h19
  3. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55
  4. [jb8][windows] main et applet
    Par ddmicrolog dans le forum JBuilder
    Réponses: 2
    Dernier message: 14/01/2003, 22h42
  5. [Kylix] applets?
    Par mickywicky dans le forum EDI
    Réponses: 6
    Dernier message: 11/11/2002, 12h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo