Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
941 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java][applet]inserer des jpanel dans un gridlayout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java][applet]inserer des jpanel dans un gridlayout

n°1031758
steuba
Posté le 31-03-2005 à 21:14:51  profilanswer
 

salut,
J essaye de realiser une interface graphique de jeu d echecs, une applet,
 j ai une classe Echiquier qui est en fait un tableau de JPanel et une classe Carre qui charge tout les elements graphiques de la futur applet...
voici la classe Echiquier qui compile bien(wahou)
 

Code :
  1. class Echiquier extends JPanel {
  2. public Echiquier() {
  3. char [] tabColonne = {'a','b','c','d','e','f','g','h'};                 
  4. int[] tabLigne;
  5. tabLigne  = new int[8];
  6. for (int i = 0; i<tabLigne.length; i++) {
  7. tabLigne[i]=i+1;
  8.     }
  9.     Echiquier[] tabCases = new Echiquier[64];
  10.    
  11.  
  12.    
  13.    
  14.         //puis la boucle qui va determiner quelle couleur doit etre chaque case de l echiquier
  15.         for (int c =0; c<64;c++) {
  16. for (int i =0; i<tabColonne.length;i++)
  17. {
  18.     for (int j =0; j<tabLigne.length;j++)
  19.      {
  20.            switch(i)  {
  21.                case 'a':
  22.                if  ((j % 2) == 0) {
  23.                tabCases[c].setBackground(Color.black);}
  24.                case 'b':
  25.                if  ((j % 2) != 0) {
  26.                tabCases[c].setBackground(Color.black);}
  27.                case 'c':
  28.                if  ((j % 2) == 0) {
  29.                tabCases[c].setBackground(Color.black);}
  30.                case 'd':
  31.                if  ((j % 2) != 0) {
  32.                tabCases[c].setBackground(Color.black);}
  33.                case 'e':
  34.                if  ((j % 2) == 0) {
  35.                tabCases[c].setBackground(Color.black);}
  36.                case 'f':
  37.                if  ((j % 2) != 0) {
  38.                tabCases[c].setBackground(Color.black);}
  39.                case 'g':
  40.                if  ((j % 2) == 0) {
  41.                tabCases[c].setBackground(Color.black);}
  42.                case 'h':
  43.                if  ((j % 2) != 0) {
  44.                tabCases[c].setBackground(Color.black);}
  45.                
  46.              
  47.          
  48.          
  49.             default: {
  50.            
  51.             tabCases[c].setBackground(Color.white);
  52.         }
  53.             add(tabCases[c]);
  54.         }
  55.      }
  56. } }
  57.     }
  58. }


 
voila je pense que ca ca devrait generer 64 Jpanel pouvant correspondre a un echiquier..
Mais le probleme survient lorsque j essaye de dire a ma classe Carre de charger chaque Jpanel dans une case d un gridLayout!! , j y arrive pas :cry:  
 
voici la class Carre bien qu y est pas grand chose...
 

Code :
  1. public class Carres extends JApplet {
  2. //Image im;
  3. public void init() {
  4. getContentPane().setLayout(new GridLayout(8,8));
  5. int i;
  6. for (i=0;i<64;i++) {
  7. //C la ou ca foire evidemment  "cannot resolv symbol Method Echiquier(int)"
  8. add(Echiquier(i));
  9. }
  10.     }
  11. }


 
Je sens que j m y prends vraiment mal la! mais comment faire alors pour que dans chaque case du gridLayout il m ajoute un de mes 64 JPanel prefabriques 8O ?
 
merci

mood
Publicité
Posté le 31-03-2005 à 21:14:51  profilanswer
 

n°1031770
WhatDe
Posté le 31-03-2005 à 21:18:07  profilanswer
 

steuba a écrit :


for (i=0;i<64;i++) {
//C la ou ca foire evidemment  "cannot resolv symbol Method Echiquier(int)"
add(new Echiquier(i));
 
 
}
    }
}  


?


Message édité par WhatDe le 31-03-2005 à 21:18:37
n°1031774
WhatDe
Posté le 31-03-2005 à 21:19:19  profilanswer
 

Non, c'est vraiment n'importe quoi.

n°1031778
WhatDe
Posté le 31-03-2005 à 21:20:12  profilanswer
 

Faudrait que tu me dis à quoi tu passes le 'i' dans "add(Echiquier(i));"

n°1031792
steuba
Posté le 31-03-2005 à 21:30:17  profilanswer
 

wouai je sais c nawak mais j sais pas quoi tester!!
En fait dans ma classe Echiquier y a les 64 JPanel qui sont fabriques donc j essaye d appeler ma classe echiquier pour recuperer chaque JPanel qui iront dans le gridLayout donc je fais  
 

Code :
  1. Echquier d = new Echiquier();
  2. add(d);


mais ca aussi ca marche pas...Le probleme c est que j arrive pas a synchroniser les cases du griLayout avec chaque JPanel que je cree dans ma classe Echiquier.

n°1031794
steuba
Posté le 31-03-2005 à 21:32:01  profilanswer
 

Code :
  1. Faudrait que tu me dis à quoi tu passes le 'i' dans "add(Echiquier(i));"


Est que je peut passer des parametres a ma classe Echiquier qd je l apelle d une autre classe?

n°1032929
steuba
Posté le 02-04-2005 à 00:28:40  profilanswer
 

merci ese-aSH,
c clair que ton code est 100 fois plus propre!!
Bon j debute aussi...En tout cas merci de ta critique constructive...

n°1035995
steuba
Posté le 05-04-2005 à 16:00:30  profilanswer
 

Bon beh j hesite pas alors :);
J arrive a modeliser l echiquier(largement grace a ton code :)) mais la je bloque tout de suite apres...
Comment faire pour afficher des images (en l occurence les pieces du jeu) dans chaque case?
Donc dans chaque JPanel  
 
 
Par exemple juste pour tester peu importe le placement...

Code :
  1. public class CaseView extends JPanel {
  2.      
  3.    
  4.     CaseView(boolean b) {
  5.         this.setSize(10,10);
  6.        if (b) { 
  7.           this.setBackground(Color.black);
  8. //On rajoute une methode qui va ajouter une image sur tout les cases noires
  9.           this.AfficherPiece(5);
  10.        } else {
  11.           this.setBackground(Color.blue); 
  12.        }
  13. }
  14. }


 
et donc la classe AfficherPiece

Code :
  1. public class AfficherPiece extends JApplet{
  2. Image im;
  3. public AfficherPiece(int piece) {
  4. if (piece ==5) {
  5.         im = getImage(getCodeBase(), "Tour.GIF" );
  6.     }
  7. }
  8.  
  9.     public void paint(Graphics g)
  10.     {
  11.         g.drawImage(im, 0, 0, this);
  12.        
  13.     }
  14. }


Deja premiere question, suis obliger d heriter de JApplet pour avoir la methode getCodeBase?
A la compil ca me dit "cannot resolv method AfficherPiece"
 
 
 
steuba qui a l impression de faire n importe quoi.
 
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java][applet]inserer des jpanel dans un gridlayout

 

Sujets relatifs
[latex] insérer imageOuvrir un fichier pdf depuis une application Java
Problème Applet : Access Denied[SQL]Insérer une ligne automatiquement dans une autre table
Java et le vectoriel... animé !Insérer donnée dans usf
projet java SWING/JDBC/MySQLcréer un bouton fermant la page html (applet)
Votre IDE javaDésinstallation pguin java 1.3.1_02
Plus de sujets relatifs à : [java][applet]inserer des jpanel dans un gridlayout


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR