Boutons Swing

Résolu/Fermé
redsky1531 Messages postés 21 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 11 septembre 2016 - Modifié par KX le 29/03/2016 à 21:42
redsky1531 Messages postés 21 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 11 septembre 2016 - 30 mars 2016 à 13:32
Bonjour,
je débute en java intermédiaire et j'aurais quelques questions sur des champs qui restent flous
- comment peut on afficher un groupe de bouton dans une fenetre "vu que la fonction this.add ne le prends pas en compte"
- pourquoi pour des boutons radio on ne peut que mettre un bouton a la fois a moins de les regrouper en un panel
merci

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
29 mars 2016 à 21:43
Bonjour,

"aide debutant oo" n'est pas très bien choisi comme titre, ce que tu fais ce n'est pas de l'orienté objet (OO) mais du Swing... (j'ai changé le titre)

- comment peut on afficher un groupe de bouton dans une fenetre "vu que la fonction this.add ne le prends pas en compte"
Il va falloir être plus précis, c'est quoi this dans ton cas et qu'est-ce que tu mets dans add ?

pourquoi pour des boutons radio on ne peut que mettre un bouton a la fois a moins de les regrouper en un panel
Pareil, dans quel contexte est-ce que tu te situes ? Rien n'empêche d'avoir plusieurs boutons et de toute façon un panel tu en as toujours un...

De manière générale il faut distinguer deux choses : les Component (ex: Button) et les Container (ex: Panel). Le principe étant de mettre un ou plusieurs composants dans les conteneurs et éventuellement des conteneurs dans d'autres conteneurs.

Plus d'infos : How to Use Buttons, Check Boxes, and Radio Buttons
0
redsky1531 Messages postés 21 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 11 septembre 2016 1
29 mars 2016 à 21:55
desolé pour mon imprudence .
en resumé j'ai creé une fenetre jframe avec plsuieurs button radios
avec la meth buttongroup je n'ai pas pu inserer tous ces boutons vu que la methode jframe.add ne prend pas en consideration la classe du bouton groupe . pourquoi ???
pour l'autre probleme c'est que dans ma fenetre j frame je ne peux mettre plus d'un bouton meme si la compilation se passe bien il me faut absolument passé par une methode jpanel est ce normal ???
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
29 mars 2016 à 22:21
"la methode jframe.add ne prend pas en consideration la classe du bouton groupe"
Le ButtonGroup c'est un groupage logique pour gérer le fait qu'un seul soit coché en même temps, mais l'ajout à la JFrame c'est un groupage physique pour mettre le bouton à l'endroit que tu veux. Il faut faire les deux.
Dans le lien que je t'ai donné tu peux regarder RadioButtonDemo.java

//Group the radio buttons.
ButtonGroup group = new ButtonGroup();
group.add(birdButton);
group.add(catButton);
group.add(dogButton);
group.add(rabbitButton);
group.add(pigButton);

//Put the radio buttons in a column in a panel.
JPanel radioPanel = new JPanel(new GridLayout(0, 1));
radioPanel.add(birdButton);
radioPanel.add(catButton);
radioPanel.add(dogButton);
radioPanel.add(rabbitButton);
radioPanel.add(pigButton);

"dans ma fenetre j frame je ne peux mettre plus d'un bouton"
Si tu peux, mais c'est probablement que tout tes boutons vont se mettre au même endroit et que tu ne les vois pas, ils se superposent.
En Swing il y a la notion de Layout, c'est ce qui permet d'organiser les Component au sein d'un Container, il y a plusieurs types de Layout, par défaut une JFrame a un BorderLayout. Selon la fenêtre graphique que tu veux obtenir tu devrais peut-être changer le Layout. L'un des plus simple pour débuter c'est le GridLayout.

frame.setLayout(new GridLayout(5, 4)); // 5 lignes, 4 colonnes

Plus d'infos : A Visual Guide to Layout Managers
0
redsky1531 Messages postés 21 Date d'inscription jeudi 17 mars 2016 Statut Membre Dernière intervention 11 septembre 2016 1
30 mars 2016 à 13:32
merci pour ton aide ..... tu m’enlèves une sacrée épine pour mes révisions de contrôles
0