[edit] aide java (comment inserer une image dans une fenetre ??)

aide java (comment inserer une image dans une fenetre ??) [edit] - Java - Programmation

Marsh Posté le 24-04-2003 à 00:27:32    

Salut tlm !!
j'aurais besoin d'aide. je fais un p'tit jeu qui ce deroule ds une fenetre et j'aimerais savoir comment fo faire pour qu'elle se ferme qd on clique sur la croix plutot que de faire ctrl-c.
j'ai ecouter dire que c'est avec des "listener" ou un truc comme ca.
j'aimerais aussi savoir comment fais pour mettre des boutons ds une fenetre.
si vous avez des liens avec des cours de java, je suis preneur.  
pouvez vous m'aider, merci.
 
[EDIT]
g reussi a faire fermer la fenetre et a mettre un bouton mais maintenant je voudrais inserer une image dans cette fenetre (et pas dans une applet) mais je sais pas comment faire et j'arrive pas a trouver de doc la dessus, c a chaque fois pour un applet et pas pour une Jframe.
j'ai remis ma class plateau a jour, ds le post en dessous, si ca peut vous aider.  
si vous pouviez m'aider, c serait cool.  :jap:


Message édité par bob_theking le 28-04-2003 à 03:19:41
Reply

Marsh Posté le 24-04-2003 à 00:27:32   

Reply

Marsh Posté le 24-04-2003 à 01:01:53    

Reply

Marsh Posté le 24-04-2003 à 08:32:55    

dans le windowClosed, tu fais un System.exit(0) pour arrêter ton prog


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 24-04-2003 à 09:29:35    

sinon, si tu utilises un derive de JFrame, tu peux faire un
 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Reply

Marsh Posté le 24-04-2003 à 11:17:24    

souk a écrit :


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


ha, tiens, je connaissais pas ca. Coll ! merci ! :)

Reply

Marsh Posté le 24-04-2003 à 11:20:19    

Sauf que quand tu hérites, tu fais juste un setDefaultCloseOperation(EXIT_ON_CLOSE).
 
Attention toutefois, windowClosing et DefaultCloseOperation peuvent s'utiliser en même temps, notamment pour le cas où plusieurs frames sont affichées à l'écran, windowClosing a une priorité sur DefaultCloseOperation il me semble. A vérifier, mais il faut savoir qu'un mécanisme impliquant les deux instructions est possible.


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 11:42:36    

merci pour vos reponse, mais j'avoue que je voie pas trop comment faire, c ou qu'il fo que j'y integre ds le prog.
je vous met ma class plateau :
 
package jeu;
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.Border;
import java.util.*;
 
public class Plateau extends JFrame {
    Environnement env;
    Moutons[] mou;
    Font f;
 
   
    int k=0, hauteur = 400, largeur = 400, taillecase = 40, nbmouton, nbstep=3;
 
    private class Quit implements ActionListener {
 public void actionPerformed(ActionEvent e) {
     k = -1;
     repaint();
 }
    }
 
    public Plateau(Environnement en,Moutons[] moutons, int nbm) {
 super("Jeu Loup - Agneau" );
 
   nbmouton = nbm;
 mou = moutons;
 env = en;
    }
     
    public void intro(Graphics g){
 
 g.setColor(Color.black);
 g.fillRect(0,0,800,600);
 g.setColor(Color.white);
 f = new Font("Courier", Font.BOLD, 20);
 g.setFont(f);
 g.drawString("Jeu LOUP-AGNEAU",300,300);
 try { Thread.sleep(1000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Présenté par",315,300);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Coupat Julien",315,280);
 g.drawString("ET",380,300);
 g.drawString("Fernandes François",285,320);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Oublie pas de regarder en dessous du plateau",70,320);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.drawString("et de cliquez sur le bouton",200,350);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.drawString("qd tora fini de tou admirer, bien sur !!",100,400);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("bon fini les conneries, place au chef d'oeuvre !!!!!",70,320);
 try { Thread.sleep(4000);} catch (Exception ex){}
 
 g.drawString("lol",400,350);
 try { Thread.sleep(4000);} catch (Exception ex){}
 
 Container container = getContentPane();
 JPanel pane = new JPanel();
 pane.setBorder(BorderFactory.createEmptyBorder(500,650,40,30));
 pane.setLayout(new GridLayout(1,0));
 pane.setBackground(Color.white);
 container.add(pane);
 
 JButton Quit = new JButton("Quit" );
 Quit.addActionListener(new Quit());
 pane.add(Quit);
 setVisible(true);
    }
 
    public void quitter(Graphics g) {
 
 g.setColor(Color.black);
 g.fillRect(0,0,800,600);
 g.setColor(Color.blue);
 f = new Font("Helvetica", Font.BOLD+Font.ITALIC, 40);
 g.setFont(f);
 for (int i=600 ; i>300 ; i--){
     g.setColor(Color.blue);
     g.drawString("Au revoir",300,i);
     try { Thread.sleep(10);} catch (Exception ex){}
     g.setColor(Color.black);
     g.drawString("Au revoir !!",300,i);
 }
 
 g.setColor(Color.white);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.drawString("C T Zoli, hein ??!!",200,320);
 
 
 try { Thread.sleep(4000);} catch (Exception ex){}
 System.exit(0);
 
    }  
 
 
    public void paint(Graphics g) {
  Image im;
    Date aujourdhui = new Date();
 
 if (k==-1) quitter(g);
 if (k == 0){
     k++;
     //im = getToolKit().getImage("moutons.JPG" );
     //image_width = get.Width(this);
     //image_height = get.Height(this);
     // g.drawImage(im, 200, 200, this);
     intro(g);
     repaint();
     return;
 }
   
 // dessin du plateau
 g.setColor(Color.white);
 g.fillRect(0,0,600,600);
 g.setColor(Color.green);
 g.fill3DRect(50,70,largeur,hauteur,true);
 g.setColor(Color.black);
 for (int i=0 ; i<10 ; i++){
     for (int j=0 ; j<10 ; j++){
  g.drawLine( (i*taillecase)+50 , 70 , (i*taillecase)+50 , 70+hauteur);
  g.drawLine( 50 , (j*taillecase)+70 , 50+largeur , (j*taillecase)+70 );
  g.setColor(Color.red);
  g.drawString(" "+i,(i*taillecase)+65,65);
  g.drawString(" "+i,35,(i*taillecase)+95);
  g.setColor(Color.black);
   
     }
 }
 g.drawLine(450,70,450,470);
 g.drawLine(50,470,450,470);
 
 // legende et date
 g.drawArc(70,480,25,25,0,360);
 g.drawString("Mouton",110,497);
 
 g.setColor(Color.blue);
 g.drawString("Jeu Loup - Agneau",200,45);
 
 // Affichage de la date
 g.setColor(Color.red);
 g.drawString(aujourdhui+" ", 300, 550);
 
 g.setColor(Color.black);
 
 for (int i=0;i<nbmouton;i++){
     if (!(env.p[mou[i].position.getx()][mou[i].position.gety()])) {    
  g.drawArc((((mou[i].position.getx())*40)+57),(((mou[i].position.gety())*40)+77),25,25,0,360);
 
     }
 }  
 
 // on deplace 3 fois les 10 moutons  
         
 if (k >= nbstep*nbmouton) return;
 k++;
 //System.out.println();
 
 // on deplace 1 fois les 10 moutons
 
 g.setColor(Color.red);
 g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
 try { Thread.sleep(2000);} catch (Exception ex){}
 
 
 g.setColor(Color.green);
 g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
 try { Thread.sleep(1000);} catch (Exception ex){}
   
 mou[k%nbmouton].step();
 System.out.println
 (
   "("+mou[k%nbmouton].position.getx()
  +","+mou[k%nbmouton].position.gety()+" )"
  );
 
 if (!(env.p[mou[k%nbmouton].position.getx()][mou[k%nbmouton].position.gety()])) {
     g.setColor(Color.black);
     g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
     try { Thread.sleep(2000);} catch (Exception ex){}
     
 }
 repaint();
     
    } // paint
} //plateau
 
dsl mais je debute.
 :sweat:


Message édité par bob_theking le 28-04-2003 à 03:22:00
Reply

Marsh Posté le 24-04-2003 à 13:34:23    

Code :
  1. public Plateau(Environnement en,Moutons[] moutons ) {
  2.     super("Jeu Loup - Agneau" );
  3.  
  4.     mou = moutons;
  5.     env = en;
  6.     setDefaultCloseOperation(EXIT_ON_CLOSE);
  7. }


Message édité par Cherrytree le 24-04-2003 à 13:34:39

---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 13:52:13    

juste ca ??   :pt1cable:  
j'essaye de suite.

Reply

Marsh Posté le 24-04-2003 à 14:03:45    

bon ce ke tu m'a donné marche mais ca ferme la fenetre qu'a la fin de l'application et ce que je voudrais (j'sais j'suis chiant)c'est pouvoir fermer la fenetre a n'importe quel moment, meme qd le prog tourne.

Reply

Marsh Posté le 24-04-2003 à 14:03:45   

Reply

Marsh Posté le 24-04-2003 à 14:46:18    

Comprends pas.


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 14:59:16    

Cherrytree a écrit :

Comprends pas.


tu comprends pas ce ke je veux ??
ben en fait, avec ce ke tu m'as donner,le prog tourne jusqu'a la fin et c seulement a la fin que la fenetre ce ferme meme si g cliquer pendant ke le prog tourne. il attend d'avoir tout fait pour ce fermer.

Reply

Marsh Posté le 24-04-2003 à 15:07:26    

souk a écrit :

sinon, si tu utilises un derive de JFrame, tu peux faire un
 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 


 
 
pas besoin de dérivé pour ca  
maFrame.SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
 
enfin le mieux ca reste qd meme de faire un truc du genre:
 

Code :
  1. addWindowListener(new WindowAdapter() {
  2.             public void windowClosing(WindowEvent e) {
  3. //ici tu fou un peu ce que tu veux genre: "etes vous sure de vouloir fermer l appli? cela mettra fin a la partie..."
  4.                 System.exit(0);
  5.             }
  6.         });


 
 
 
edit:  
c'est quoi ca :D
 
        for (int k=0;k<3;k++){
         System.out.println(); << ??
sinon utilise la balise "code" c plus lisible ;)


Message édité par veryfree le 24-04-2003 à 15:14:20
Reply

Marsh Posté le 24-04-2003 à 15:14:46    

Stadire avec tes Thread.sleep()... ça sort un peu du cadre de mes connaissances. Les applications Swing gèrent pas les threads par défaut. Question : à quoi ça sert de faire tous ces sleep, partout ?


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 15:16:07    

veryfree a écrit :


enfin le mieux ca reste qd meme de faire un truc du genre:


N'importe quoi ! C'est la même chose avec une notion de priorité permettant entre autres de gérer des cas particuliers lorsque plusieurs Frames sont affichées.


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 15:17:45    

Cherrytree a écrit :


N'importe quoi ! C'est la même chose avec une notion de priorité permettant entre autres de gérer des cas particuliers lorsque plusieurs Frames sont affichées.


 
c mieux dans la mesure ou tu personnalise la fermeture de la fenetre  :o  
 
dans une vrai appli t a toujours besoin de faire certaine chose lorsque l utilisateur click sur la croix  
avec setDefaultCloseOperation() c'est pas possible :o


Message édité par veryfree le 24-04-2003 à 15:18:01
Reply

Marsh Posté le 24-04-2003 à 15:18:55    

veryfree a écrit :


 
c mieux dans la mesure ou tu personnalise la fermeture de la fenetre  :o  
 
dans une vrai appli t a toujours besoin de faire certaine chose lorsque l utilisateur click sur la croix  
avec setDefaultCloseOperation() c'est pas possible :o


spafaux, mais ici, c'est équivalent.


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 15:20:48    

Cherrytree a écrit :


spafaux, mais ici, c'est équivalent.


 
oui ici ca conviens tres bien  
c pour ca que j ai écrit que c était mieux j ai pas dit que c etait mal
 
 
d ailleurs les exemples du site de sun sont bourré de setDefaultCloseOperation...


Message édité par veryfree le 24-04-2003 à 15:21:50
Reply

Marsh Posté le 24-04-2003 à 15:40:32    

veryfree > le "System.out.println();" c juste pour soter une ligne, il ecrit rien.
Cherrytree > les "try { Thread.sleep(1000);} catch (Exception ex){}" c pour attendre un moment pour pas que ca aille trop vite parce que sinon on voit pas ce qu'il se passe. c comme les delay en pascal.

Reply

Marsh Posté le 24-04-2003 à 15:42:33    

cherytree > le code que tu m'as donné je le met ou, parce que c bien ca ke j'avais vu sur un site et j'ai essayer de l'inserer mais ca marchait pas. j'avais pas du le mettre au bon endroit.  :sweat:

Reply

Marsh Posté le 24-04-2003 à 15:45:31    

bob_theking a écrit :

cherytree > le code que tu m'as donné je le met ou, parce que c bien ca ke j'avais vu sur un site et j'ai essayer de l'inserer mais ca marchait pas. j'avais pas du le mettre au bon endroit.  :sweat:  


 
 
tu le met a la fin du constructeur
 
regarde bien ce qu a mis cherrytree plus haut

Reply

Marsh Posté le 24-04-2003 à 16:04:54    

j'dois etre vraiment con mais j'y arrive pas.  :cry:  
g bien mis le listener a la fin du constructeur mais qd je clique sur la croix il ne se passe rien... et la fenetre se ferme a la fin de l'appli comme avec le  
" setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); "

Reply

Marsh Posté le 24-04-2003 à 16:07:58    

bob_theking a écrit :

j'dois etre vraiment con mais j'y arrive pas.  :cry:  
g bien mis le listener a la fin du constructeur mais qd je clique sur la croix il ne se passe rien... et la fenetre se ferme a la fin de l'appli comme avec le  
" setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); "


 
c'est a cause de tes fichus Thread.Sleep...
c'est pas top
le mieux c'est de faire une une class qui etend Thread plutot..
 
si tu sait pas comment faire >> http://penserenjava.free.fr

Reply

Marsh Posté le 24-04-2003 à 16:27:08    

Cherrytree a écrit :

Sauf que quand tu hérites, tu fais juste un setDefaultCloseOperation(EXIT_ON_CLOSE).


 
punaise !!! quand je pense que ca fait un bout de temps que je tape le JFrame pour rien... merci de la remarque  :jap:

Reply

Marsh Posté le 24-04-2003 à 16:29:15    

souk a écrit :


 
punaise !!! quand je pense que ca fait un bout de temps que je tape le JFrame pour rien... merci de la remarque  :jap:  


 
tu peux aussi mettre 3 a la place de EXIT_ON_CLOSE  :o

Reply

Marsh Posté le 24-04-2003 à 16:38:10    

veryfree a écrit :


tu peux aussi mettre 3 a la place de EXIT_ON_CLOSE  :o  


supaire... comme ca dans le jdk suivant quand ils s'amuseront a changer la valeur de la constante, ca marchera plus.
 
qu'est ce qu'on s'amuse ici :o

Reply

Marsh Posté le 24-04-2003 à 17:00:47    

je vous met tout ce dont je me sert pour mon prog, si des fois ca peut aider puisque je n'y suis tjrs pas arrivé :
 
la classe position
 
package jeu;
import java.util.Vector;
public class Position{
    private int x,y;
    public Position(int a, int b) {
 x=a;
 y=b;
    }
    public int getx(){
 return x;
    }
    public int gety(){
 return y;
    }
    public void setpos(int a, int b) {
 x=a;
 y=b;
    }
}
 
la classe mouton
package jeu;
import java.util.Vector;
 
 public class Moutons{
    Position position;
    Environnement environnement;
    String nom;
 
 public Moutons(Environnement en,Position posi,String mot){
    environnement=en;
    position=posi;
    nom=mot;
    }
 
 public void step () {
 
      // Initialisation des variables utilisées pour le déplacement
 int compteur=0;
 int px[];
 int py[];
 px = new int[9];
 py = new int[9];
 
 // Test les neuf cases entourant la position du mouton
 for (int i=1 ; i<4 ; i++) {
   for (int j=1 ; j<4 ; j++) {
 
          // Test si le mouton se situe sur les bords de l'environnement
         if (((position.getx()+i-2)<(int)(environnement.nblargeur)-1) && ((position.getx()+i-2)>=0) &&  ((position.gety()+j-2)>=0) && ((position.gety()+j-2)<(int)(environnement.nblargeur)))
 
  // Test si la case est vide
 if (environnement.p[position.getx()+i-2][position.gety()+j-2]) {
         /* On garde les positions possibles dans deux tableaux
  compteur : nombre de cases libres
  */
  px[compteur] = position.getx()+i-2;
  py[compteur] = position.gety()+j-2;
  compteur++;
   } //if
    } //boucle for j
         } //boucle for i
 
 // Cas où aucune cas n'est libre  
 if (compteur == 0) {
    System.out.println(" Deplacement impossible " );
 }  //if
 
 // Un seul cas possible
 if (compteur == 1) {
         environnement.p[px[1]][py[1]]=false;
         environnement.p[position.getx()][position.gety()]=true;
  position.setpos(px[1],py[1]);
 } //if
 
 // Cas où plusieurs déplacement sont possibles  
 if (compteur > 1) {
    // Choix aleatoire d'une case libre
   int choix = (int)(Math.random()*compteur);
          environnement.p[px[choix]][py[choix]]=false;
          environnement.p[position.getx()][position.gety()]=true;
          position.setpos(px[choix],py[choix]);
 } //if
   } //step    
}
 
la classe environnement
 
package jeu;
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
 
public class Environnement{
 
     // initialisation de la taille de l'environnement
    int nblargeur;
    boolean[][] p;
 
    public  Environnement(int larg){
      nblargeur=larg;
      p=new boolean[larg][larg];
    }
 
    public void Setfalse(int x,int y){
     p[x][y]=false;
    }
 
    public boolean getenv(int a,int b){
  return p[a][b];
    }
 
    public void Settrue(int x,int y){
 p[x][y]=true;
    }
 
    /* On place les moutons dans l'environnement
       les paramètres:
    - nbmouton : nombre de mouton
    - Position[] pos: tableau comprenant la position propre de chaque mouton
    - int[][] en: tableau d'entiers ( 0 : case libre , 1 : case occupée )
    */
 
    public void init(int nbmouton,Moutons[] moutons){
 
      // Initialisation de la position de chaque mouton
 for(int i=0 ; i<nbmouton ; i++){
  boolean ex=true;
   while (ex){
     ex=false;
            Position d=new Position((int)(nblargeur*Math.random()),(int)(nblargeur*Math.random()));
     moutons[i]=new Moutons(this,d,"max" );
 
  // Vérification qu'aucun des moutons se superposent
 
  for (int j=0 ; (j<i) && (!ex) ; j++){
   if ((moutons[i].position.getx()==moutons[j].position.getx()) && (moutons[i].position.gety()==moutons[i].position.gety()))
      ex=true;
  } // fin du for j
    } // fin du while
 
 // Affichage des positions
        System.out.println("("+moutons[i].position.getx()+","+moutons[i].position.gety()+" )" );
 
        // Sauvegarde de l'etat de l'environnement
 
      p[moutons[i].position.getx()][moutons[i].position.gety()]=false;
 
 } //fin du for i
    }  //fin init
 
}
 
 
la classe plateau
 
package jeu;
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.Border;
import java.util.*;
 
public class Plateau extends JFrame {
    Environnement env;
    Moutons[] mou;
    Font f;
 
   
    int k=0, hauteur = 400, largeur = 400, taillecase = 40, nbmouton, nbstep=3;
 
    private class Quit implements ActionListener {
 public void actionPerformed(ActionEvent e) {
     k = -1;
     repaint();
 }
    }
 
    public Plateau(Environnement en,Moutons[] moutons, int nbm) {
 super("Jeu Loup - Agneau" );
 
   nbmouton = nbm;
 mou = moutons;
 env = en;
    }
     
    public void intro(Graphics g){
 
 g.setColor(Color.black);
 g.fillRect(0,0,800,600);
 g.setColor(Color.white);
 f = new Font("Courier", Font.BOLD, 20);
 g.setFont(f);
 g.drawString("Jeu LOUP-AGNEAU",300,300);
 try { Thread.sleep(1000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Présenté par",315,300);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Coupat Julien",315,280);
 g.drawString("ET",380,300);
 g.drawString("Fernandes François",285,320);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("Oublie pas de regarder en dessous du plateau",70,320);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.drawString("et de cliquez sur le bouton",200,350);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.drawString("qd tora fini de tou admirer, bien sur !!",100,400);
 try { Thread.sleep(4000);} catch (Exception ex){}
 g.setColor(Color.black);
 g.fillRect(0,0,600,600);
 g.setColor(Color.white);
 g.drawString("bon fini les conneries, place au chef d'oeuvre !!!!!",70,320);
 try { Thread.sleep(4000);} catch (Exception ex){}
 
 g.drawString("lol",400,350);
 try { Thread.sleep(4000);} catch (Exception ex){}
 
 Container container = getContentPane();
 JPanel pane = new JPanel();
 pane.setBorder(BorderFactory.createEmptyBorder(500,650,40,30));
 pane.setLayout(new GridLayout(1,0));
 pane.setBackground(Color.white);
 container.add(pane);
 
 JButton Quit = new JButton("Quit" );
 Quit.addActionListener(new Quit());
 pane.add(Quit);
 setVisible(true);
    }
 
    public void quitter(Graphics g) {
 
 g.setColor(Color.black);
 g.fillRect(0,0,800,600);
 g.setColor(Color.blue);
 f = new Font("Helvetica", Font.BOLD+Font.ITALIC, 40);
 g.setFont(f);
 for (int i=600 ; i>300 ; i--){
     g.setColor(Color.blue);
     g.drawString("Au revoir",300,i);
     try { Thread.sleep(10);} catch (Exception ex){}
     g.setColor(Color.black);
     g.drawString("Au revoir !!",300,i);
 }
 
 g.setColor(Color.white);
 try { Thread.sleep(2000);} catch (Exception ex){}
 g.drawString("C T Zoli, hein ??!!",200,320);
 
 
 try { Thread.sleep(4000);} catch (Exception ex){}
 System.exit(0);
 
    }  
 
 
    public void paint(Graphics g) {
  Image im;
    Date aujourdhui = new Date();
 
 if (k==-1) quitter(g);
 if (k == 0){
     k++;
     //im = getToolKit().getImage("moutons.JPG" );
     //image_width = get.Width(this);
     //image_height = get.Height(this);
     // g.drawImage(im, 200, 200, this);
     intro(g);
     repaint();
     return;
 }
   
 // dessin du plateau
 g.setColor(Color.white);
 g.fillRect(0,0,600,600);
 g.setColor(Color.green);
 g.fill3DRect(50,70,largeur,hauteur,true);
 g.setColor(Color.black);
 for (int i=0 ; i<10 ; i++){
     for (int j=0 ; j<10 ; j++){
  g.drawLine( (i*taillecase)+50 , 70 , (i*taillecase)+50 , 70+hauteur);
  g.drawLine( 50 , (j*taillecase)+70 , 50+largeur , (j*taillecase)+70 );
  g.setColor(Color.red);
  g.drawString(" "+i,(i*taillecase)+65,65);
  g.drawString(" "+i,35,(i*taillecase)+95);
  g.setColor(Color.black);
   
     }
 }
 g.drawLine(450,70,450,470);
 g.drawLine(50,470,450,470);
 
 // legende et date
 g.drawArc(70,480,25,25,0,360);
 g.drawString("Mouton",110,497);
 
 g.setColor(Color.blue);
 g.drawString("Jeu Loup - Agneau",200,45);
 
 // Affichage de la date
 g.setColor(Color.red);
 g.drawString(aujourdhui+" ", 300, 550);
 
 g.setColor(Color.black);
 
 for (int i=0;i<nbmouton;i++){
     if (!(env.p[mou[i].position.getx()][mou[i].position.gety()])) {    
  g.drawArc((((mou[i].position.getx())*40)+57),(((mou[i].position.gety())*40)+77),25,25,0,360);
 
     }
 }  
 
 // on deplace 3 fois les 10 moutons  
         
 if (k >= nbstep*nbmouton) return;
 k++;
 //System.out.println();
 
 // on deplace 1 fois les 10 moutons
 
 g.setColor(Color.red);
 g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
 try { Thread.sleep(2000);} catch (Exception ex){}
 
 
 g.setColor(Color.green);
 g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
 try { Thread.sleep(1000);} catch (Exception ex){}
   
 mou[k%nbmouton].step();
 System.out.println
 (
   "("+mou[k%nbmouton].position.getx()
  +","+mou[k%nbmouton].position.gety()+" )"
  );
 
 if (!(env.p[mou[k%nbmouton].position.getx()][mou[k%nbmouton].position.gety()])) {
     g.setColor(Color.black);
     g.drawArc((((mou[k%nbmouton].position.getx())*40)+57),(((mou[k%nbmouton].position.gety())*40)+77),25,25,0,360);
     try { Thread.sleep(2000);} catch (Exception ex){}
     
 }
 repaint();
     
    } // paint
} //plateau
 
 
et enfin le main
 
package jeu;
import java.awt.event.*;
public class Modele {
 
    final static int nbmouton=10;
 
    public static void main(String[] args) {
 
        Position[] posit=new Position[nbmouton];
 Environnement e=new Environnement(10);
 Moutons[] moutons;
        moutons = new Moutons[nbmouton];
 Plateau p = new Plateau(e,moutons);
 
 
        // Initialisation de l'environnement
 for (int i=0 ; i<10 ; i++){
     for(int j=0 ; j<10; j++){
  e.Settrue(i,j);
     }  // for j
        } // for i
 
        // on place les moutons dans l'environnement
      e.init(nbmouton,moutons);
 try { Thread.sleep(5000);} catch (Exception ex){}
 
 //Plateau p = new Plateau(e);
  p.setSize(600,600);
  p.show();
    } // main
} // Modele


Message édité par bob_theking le 28-04-2003 à 03:23:44
Reply

Marsh Posté le 24-04-2003 à 17:02:06    

Ta classe Position ne sert à rien : une classe Point existe et fait la même chose. C'est juste un détail, hein.


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 17:03:05    

C'est quoi Environnement ?


---------------
Le site de ma maman
Reply

Marsh Posté le 24-04-2003 à 17:06:23    

Cherrytree a écrit :

C'est quoi Environnement ?


 
oups g oublie d'y mettre.  :pt1cable:  
voila c rectifié.


Message édité par bob_theking le 24-04-2003 à 17:08:46
Reply

Marsh Posté le 25-04-2003 à 01:49:06    

les sleep dans le paint(), c'est pas une bonne idée.
 
cree plutot un thread dans init qui sera chargé de faire tes dessins sur une image et qui lui pourra contenir des sleep et fera appel à repaint() quand tu le desires;
 
le paint() principal aura juste à afficher l'image en question

Reply

Marsh Posté le 25-04-2003 à 02:04:26    

lorill a écrit :


supaire... comme ca dans le jdk suivant quand ils s'amuseront a changer la valeur de la constante, ca marchera plus.
 
qu'est ce qu'on s'amuse ici :o


 
ben ils  samuserons pas a le faire tout simplement pq c'est pas marrant  :D

Reply

Marsh Posté le 28-04-2003 à 12:23:04    

bon mon probleme de fermeture de fenetre a ete resolu mais maintenant je voudrais inserer une image dans cette fenetre (et pas dans une applet) mais je sais pas comment faire et j'arrive pas a trouver de doc la dessus, c a chaque fois pour un applet et pas pour une Jframe.  
savez vous comment faire ??

Reply

Marsh Posté le 28-04-2003 à 13:22:08    

Vas voir la classe ImageIcon. Sinon, tu as le Java Tutorial qui montre quelques exemples d'applis Swing qui affichent des images.
 
Par exemple : http://java.sun.com/docs/books/tut [...] lpane.html


---------------
Le site de ma maman
Reply

Marsh Posté le 28-04-2003 à 14:23:26    

y'a pas un site ou c expliquer en francais parce que l'anglais  :kaola:

Reply

Marsh Posté le 28-04-2003 à 14:54:23    

le JLabel ca sert a koi ??
c pour l'icone de la barre de titre ou c pour n'importe kel icone (image ??) ??

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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