Re Affichage Tableau 2D !!!!

Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
- - Dernière réponse : mimilavitrine
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
- 20 juin 2005 à 22:17
je debute en java J'ai un probleme pour afficher un tableau 2D d'image Icon

Quand je compile j'ai ma fenetre mais je n'ai qu'une seule image null
qui apparait sur la ligne du milieu de la fenetre a gauche autrement
dit Tab[6][0] a priori est ce que quelqu'un peut m'aider SVP car je ne
voix pas du tout ou se situe l'erreur


Merci d'avance



import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.*;

import javax.swing.ImageIcon;

import javax.swing.Timer;

import javax.swing.JFrame;

import javax.swing.JLabel;

import java.awt.GridLayout;



public class Jeux extends JFrame {



//---------------------------------------------

//

// Déclaration des variables de la classe

//

//---------------------------------------------

public int Hauteur 600, Largeur 300, X = 150, Y = 100;

public Scene scene; // la scene va créer la zone de jeux

public BriqueJeux brique; // brique de jeux peut etre etre déplacer

public Timer timer; // permet de gerer le jeux et la descente des briques

public ImageIcon [][] tab; // tableau de jeux

public boolean bool;

private static int temp = 1000; // temp pour le timer

public static JFrame fenetre ;





public Jeux () // constructeur par defaut

{

// initialisation des données de la classe

scene = new Scene ();

tab = scene.getTjeux(); // recupération du tableau de jeux

//initialisation d'un tableau de type bloc d'image

fenetre = new JFrame ("Puyo");

fenetre.setBounds(X,Y , 300 , 600);

GridLayout grille = new GridLayout (6, 12);

JLabel j = new JLabel ();

j.setLayout(grille);

//j.applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);

int y ;

for (int i = 0 ; i < 12; i++)

{

for (y = 0 ; y < 6; y++)

{

j.setIcon(tab[i][y]);

fenetre.getContentPane().add(j);

}

}

//fenetre.setContentPane(j);

fenetre.setVisible(true);

}

public static void main(String[] args)

{

// création d'un nouveaux jeux

Jeux jeux = new Jeux ();



}

}





////////////////////////////////////////////

public class Scene {



///////////////////////////////////////////////////

//

// DEClARATION des variables



private static int nbcaseH 12 , nbcaseL 6 ; // ces variables permettent de donnée les nombres$




// cases en hauteur et en largeur



private ImageIcon [][] Tjeux; // tableau qui permet de gerer la fenetre de jeux



public ImageIcon imgnull = new ImageIcon ("image/null.png");



////////////////////////////////////////////////////

//

// Constructeur de la classe

//



public Scene () // constructeur initialisant les variables utile de la scene

{

Tjeux = new ImageIcon [nbcaseH][nbcaseL]; // initialisation du





// tableau de jeux

for (int i = 0 ; i < nbcaseH ;
i++ ) // toutes les cases

{



// sont a null

for (int j = 0 ; j < nbcaseL ; j++)

{

Tjeux[i][j] = imgnull;

}

}

}
Afficher la suite 

4 réponses

Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
30 mars 2011
0
Merci
tu fais apelles à la méthode getTjeux pour récupérer le tableau mais je ne la voie nulle part dans la classe Scene.
Commenter la réponse de kaloway
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
Excuse moi j'ai oublier de la mettre



public ImageIcon [][] getTjeux() // accesseur sur la donnée privé Tjeux

{

return Tjeux;// retourne le Tableau 2D de jeux

}
Commenter la réponse de mimilavitrine
Messages postés
358
Date d'inscription
jeudi 24 octobre 2002
Statut
Membre
Dernière intervention
30 mars 2011
0
Merci
la jvm ne voit qu'une seule référence(j) sur un jlabel donc elle ajoute
toujours le même jlabel au meme endroit. la solution est de créer un
tableau de jlabel.



Qui serait bien, ce serait que tu approfondisses les notions
d'héritage. Car ta classe jeux hérite déja de jframe donc tu n'a pas
besoin de créer fenetre qui est une jframe.
Commenter la réponse de kaloway
Messages postés
54
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
15 octobre 2006
0
Merci
Est ce que je doit faire un tableau 2D de JLabel ??? par contre je ne vois pas ce que l'on appelle un jvm

en tout cas merci d'avoir repondu merci beaucoup
Commenter la réponse de mimilavitrine