[Java] comment afficher

Fermé
Aoi - 12 déc. 2004 à 23:20
rameur Messages postés 135 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 21 janvier 2009 - 13 déc. 2004 à 15:54
Bonjour,

Je souhaiterais savoir comment afficher un objet Case extends de JLabel dans un gridLayout d'une JFrame.
Le problème est que si je remplace les Cases par des JLabel, tout se passe bien, mais dès que je mets des Cases à la place des JLabel,
ça m'affiche toutes les Cases toujours au même endroit.

Ne peut-on pas utiliser les objets extends de JLabel comme des JLabel dans les gridLayout?

Je suis un peu perdu, et ça commence vraiment à me déprimer.
Si quelqu'un pouvait m'aider... :)

Je balance le code pour que vous voyiez mieux de quoi je parle.

public Map(int x, int y){
super();
setLayout(new GridLayout(x,y));
for (int i=0 ; i<x ; i++) {
for (int j=0 ; j<y ; j++){
Case jlab = new Case();
jlab.setIcon(new ImageIcon(tab[i][j].getpath()));
add(jlab);
}
}
}

tab est un tableau de Cases.
getpath() renvoit un string avec l'adresse de l'image sur le pc.
Enfin, une Case est une classe extends de JLabel, avec deux /trois parametres du genre int .

Voilà. Si je remplace "Case" par "JLabel", tout va bien. Mais il faut absolument que je manipule des Cases.

Merci d'avance.
A voir également:

1 réponse

rameur Messages postés 135 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 21 janvier 2009 21
13 déc. 2004 à 15:54
mon ami une Case est une JLabel, mais une JLabel n est pas une Case :
en effet Case herite de JLabel, donc possede toutes ses caracteristiques, concretement ca signifie que si une methode attends un JLabel tu peux passer une Case
mais l inverse n est pas vrai car Case Extends JLabel, donc ajoute de nouvelles caracteristiques que JLabel ne possede pas.

donc si ca marche avec JLabel ca doit marcher avec Case a moins que tu n est redefini des methodes heritees...
0