Problème d'affichage JButton
Résolu
Skymer
Messages postés
565
Statut
Membre
-
Skymer Messages postés 565 Statut Membre -
Skymer Messages postés 565 Statut Membre -
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... -
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"