Problème d'affichage JButton
Résolu
Skymer
Messages postés
477
Date d'inscription
Statut
Membre
Dernière intervention
-
Skymer Messages postés 477 Date d'inscription Statut Membre Dernière intervention -
Skymer Messages postés 477 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai décidé de faire le TP de la calculatrice en java, mon problème est que : les boutons sont initialisé par une boucle for, et son mis dans le bon JPanel :
Et bah les JButtons de la boucle else et encore plus disparaissent totalement random, image :
celle est parfaite mais imaginez que le "*", jusqu'au ".", puisse partir d'un coup, bah c'est ce qui m'arrivent.
Merci de vos réponse
EDIT : Ah et au faite, quand j'enlève setRezisable sur ma JFrame, plus rien n'apparait en terme de JButton, sauf quand j'étire ma fenêtre
Skymer
"On à jamais rien, sans rien !"
"Ne jamais abandonnez"
for (String but : namNum){ i++; butIni = new JButton(but); if (i <= 12){ this.numButt.add(butIni); }else { this.othButt.add(butIni); }
Et bah les JButtons de la boucle else et encore plus disparaissent totalement random, image :

celle est parfaite mais imaginez que le "*", jusqu'au ".", puisse partir d'un coup, bah c'est ce qui m'arrivent.
Merci de vos réponse
EDIT : Ah et au faite, quand j'enlève setRezisable sur ma JFrame, plus rien n'apparait en terme de JButton, sauf quand j'étire ma fenêtre
Skymer
"On à jamais rien, sans rien !"
"Ne jamais abandonnez"
4 réponses
Bonjour,
Il va falloir ton code complet pour reproduire le bug, tes explications ne vont pas suffire...
Il va falloir ton code complet pour reproduire le bug, tes explications ne vont pas suffire...
Skymer
Messages postés
477
Date d'inscription
Statut
Membre
Dernière intervention
75
Je te ferais ça demain, si j'y pense ?
bonjour, j'ai décidé de faire le TP de la calculatrice en java, mon problème est que : les boutons sont initialisé par une boucle for, et son mis dans le bon JPanel :
Comment veux-tu que cela s'affiche ? Les boutons sont joliment rangees avec
un algorithme simpliste.
Ils disparaissent, voilà le code source pour KX (juste celui de la classe qui étends JFrame :
package fr.skymer.main; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class Frame extends JFrame { private JPanel container = new JPanel(); private JButton butIni; private JPanel numButt = new JPanel(); private JPanel othButt = new JPanel(); private JPanel pan = new JPanel(); private Panel panel = new Panel(); private int i; private String namNum[] = {"1","2","3","4","5","6","7","8","9","0",".","=","C","+","-","/","*"}; public Frame(){ //Fenêtre this.setSize(300,400); this.setVisible(true); this.setResizable(false); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(Frame.EXIT_ON_CLOSE); this.setTitle("Calculatrice"); //ContentPane et placement des objets entre eux-mêmes this.setContentPane(container); this.panel.setPreferredSize(new Dimension(300,50)); this.othButt.setPreferredSize(new Dimension(100,50)); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(panel, BorderLayout.NORTH); this.getContentPane().add(pan, BorderLayout.CENTER); this.pan.setLayout(new BorderLayout()); this.pan.add(numButt, BorderLayout.CENTER); this.pan.add(othButt, BorderLayout.EAST); //Initialisation des boutons this.numButt.setLayout(new GridLayout(4,3,5,5)); this.othButt.setLayout(new GridLayout(5,2,5,5)); i = 0; for (String but : namNum){ i++; butIni = new JButton(but); if (i <= 12){ this.numButt.add(butIni); }else { this.othButt.add(butIni); } } } }
Donc pour reprendre ce que tu as dis, tu as raison il suffit de respecter un certains ordres et de déclarer logiquement, encore une fois on dois un fière chandelle à KX :3, bah merci, rectification : encore merci
PS : pourquoi s'embêter comme ça, étrange ....
Skymer
"On à jamais rien, sans rien !"
"Ne jamais abandonnez"
PS : pourquoi s'embêter comme ça, étrange ....
Skymer
"On à jamais rien, sans rien !"
"Ne jamais abandonnez"