Afficher tableau dans une fenêtre
Résolu/Fermé
Vitaldix
Messages postés
116
Date d'inscription
vendredi 9 novembre 2012
Statut
Membre
Dernière intervention
18 août 2013
-
27 mai 2013 à 09:38
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 29 mai 2013 à 19:42
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 29 mai 2013 à 19:42
A voir également:
- Afficher tableau dans une fenêtre
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Tableau croisé dynamique - Guide
- Afficher un tableau en c - Forum C
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Tableau ascii - Guide
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
27 mai 2013 à 18:44
27 mai 2013 à 18:44
Déjà, le setVisible(true); doit toujours être après l'ajout des éléments, sinon rien ne garantie que ceux qui seraient ajoutés après soient effectivement affichés.
Mais sinon le vrai problème c'est ici :
Il te manque donc juste des accolades pour que tes ajouts soient bien dans la deuxième boucle :
Remarque : c'est une très mauvaise idée d'avoir déclaré "truc" et "machin" comme membre "public static", ce sont des variables locales !
D'ailleurs elles ne servent à rien... tu peux les supprimer.
Voici comment tu pourrais faire proprement l'affichage de tes deux tableaux :
Mais sinon le vrai problème c'est ici :
for (String n : t)
truc = new JLabel(n + " ");
machin = new JLabel();
pano4.add(truc);
pano4.add(machin);Tu créés bien 11x11 JLabel "truc" mais tu ne créés que 11 JLabel "machin", et dans les deux cas tu n'ajoutes que 11 truc et 11 machin dans pano4 (idem pour pano5)
Il te manque donc juste des accolades pour que tes ajouts soient bien dans la deuxième boucle :
for (String n : t)
{
truc = new JLabel(n + " ");
machin = new JLabel();
pano4.add(truc);
pano4.add(machin);
}
Remarque : c'est une très mauvaise idée d'avoir déclaré "truc" et "machin" comme membre "public static", ce sont des variables locales !
D'ailleurs elles ne servent à rien... tu peux les supprimer.
Voici comment tu pourrais faire proprement l'affichage de tes deux tableaux :
//création du tableau
for (String[] t : tablref)
for (String n : t)
{
pano4.add(new JLabel(n));
pano5.add(new JLabel(n));
}
28 mai 2013 à 22:39
Tes corrections marchent en effet mais seulement pour tablref ! On voudrait également le faire pour tabl et tablref2, l'un en dessous de l'autre (je précise bien évidemment qu'on a remplacé tablref par tabl et tablref2 dans tes corrections).
Je précise également que tabl et tablref2 sont par la suites remplis par des lettres au lieu de "_", je ne sais pas si ça joue mais je le dis quand même.
Merci de ton aide, bonne soirée
29 mai 2013 à 06:06
public partie() { //initialisation des tableaux String[][] tabl = new String [11][11]; String[][] tablref = new String [11][11]; String[][] tablref2 = new String [11][11]; //appel de fonction de remplissage de tableau tableau(tablref); tableau_(tablref2); tableau_(tabl); //création des panels JPanel pano = new JPanel(new GridLayout(3,1)); JPanel pano4 = new JPanel(new GridLayout (11,11)); JPanel pano5 = new JPanel(new GridLayout (11,11)); JPanel pano6 = new JPanel(new GridLayout (11,11)); //ajout des panels dans la fenetre add(pano); pano.add(pano4); pano.add(pano5); pano.add(pano6); //ajout des labels for (String[] t : tablref) for (String n : t) pano4.add(new JLabel(n)); for (String[] t : tablref2) for (String n : t) pano5.add(new JLabel(n)); for (String[] t : tabl) for (String n : t) pano6.add(new JLabel(n)); //création de la fenetre setSize(600,600); //setResizable(false) ; setTitle("jeu"); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); }29 mai 2013 à 19:42
Merci en tous cas !