IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Problème d'affichage SWING


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut Problème d'affichage SWING
    Bonjour,

    j'essaye de faire l'exo suivant :
    On souhaite créer un panneau contenant quatre cases à cocher (JCheckBox) étiquettées "zoro", "invanhoé", "spiderman" et "moi". On veut faire en sorte qu'il n'y ait qu'un seul checkbox sélectionné à la fois. Il y a deux algorithmes différents :

    1. Faire en sorte que lorsque l'on sélectionne un checkbox les autres soient automatiquement déselectionnés.
    2. Faire en sorte de déselectionner l'ancien checkbox sélectionné avant de sélectionner le nouveau.

    Il est possible d'obtenir tous les fils d'un Container (un JPanel est un Container) à l'aide des méthodes getComponentCount() et getComponent().

    Dans cette exercice, il est demandé de ne pas utiliser la classe ButtonGroup mais de programmer 'à la main' le comportement.
    Voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import javax.swing.*;
     
    public class CheckBoxTest {
    	public static void main(String[] args) {
    		JFrame frame = new JFrame();
    		JCheckBox zoro = new JCheckBox("zoro");
    		JCheckBox invanhoe = new JCheckBox("invahnoe");
    		JCheckBox spiderman = new JCheckBox("spiderman");
    		JCheckBox moi = new JCheckBox("moi");
    		frame.setTitle("CheckBoxTest");
    		frame.setSize(400,300);
    		frame.setVisible(true);
    		frame.add(zoro);
    		frame.add(invanhoe);
    		frame.add(spiderman);
    		frame.add(moi);
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
     
    }
    J'obtiens une fenetre mais elle est vide
    Pourriez-vous m'aider ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    http://www.inf.enst.fr/~charon/cours...g/bouton1.html recherche ->setContentPane

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public class CheckBoxTest {
    	public static void main(String[] args) {
    		JFrame frame = new JFrame();
    JPanel panel = new JPanel();
    panel.setLayout(->@A voir par la suite sinon null);
    		JCheckBox zoro = new JCheckBox("zoro");
    		JCheckBox invanhoe = new JCheckBox("invahnoe");
    		JCheckBox spiderman = new JCheckBox("spiderman");
    		JCheckBox moi = new JCheckBox("moi");
    		frame.setTitle("CheckBoxTest");
    		frame.setSize(400,300);
    		frame.setVisible(true);
    		panel.add(zoro);
    		panel.add(invanhoe);
    		panel.add(spiderman);
    		panel.add(moi);
     
    		frame.setContentPane(panel);
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Salut,

    avec le code que tu as écrit, la fenetre est toujours vide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Par défaut
    Salut premium,
    Le truc c'est que tu dois ajouter un panel (celui qui contient les elements graphiques) à ta fenêtre en utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getContentPane().add(panel);

  5. #5
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Enlève la ligne "panel.setLayout(null)". Le layout par défaut est un FlowLayout, même si c'est pas le plus joli, ça a l'avantage de marcher.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 747
    Par défaut
    Le code écrit comme ceci m'affiche les 4 boutons que je peux cocher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import javax.swing.*;
     
    public class CheckBoxTest {
    	public static void main(String[] args) {
    		JFrame frame = new JFrame();
    		JPanel panel = new JPanel();
    		JCheckBox zoro = new JCheckBox("zoro");
    		JCheckBox invanhoe = new JCheckBox("invahnoe");
    		JCheckBox spiderman = new JCheckBox("spiderman");
    		JCheckBox moi = new JCheckBox("moi");
    		frame.setTitle("CheckBoxTest");
    		frame.setSize(400,300);
    		frame.setVisible(true);
    		panel.add(zoro);
    		panel.add(invanhoe);
    		panel.add(spiderman);
    		panel.add(moi);
    		frame.getContentPane().add(panel);
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }
    Je voudrais savoir comment faire pour que lorsque je coche une case, l'autre est désélectionné car pour l'instant, je peux cocher les 4

    Merci

Discussions similaires

  1. Problème d'affichage des fichiers Swing
    Par Richard_Rahl dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 07/05/2007, 10h21
  2. problème du pause (sleep) ou problème vitesse d'affichage (Swing)
    Par MAD_Tarik dans le forum EDT/SwingWorker
    Réponses: 15
    Dernier message: 17/04/2007, 13h47
  3. [Swing] Problème d'affichage dans un JScrollPane
    Par Adrien22 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/04/2006, 14h36
  4. [Swing]Problème d'affichage sur un JTree
    Par tomca dans le forum Composants
    Réponses: 4
    Dernier message: 19/01/2006, 10h41
  5. [Swing] problème d'affichage
    Par l'obstiné dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/08/2004, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo