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

Composants Java Discussion :

JScrollPane + CheckboxGroup = :(


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut JScrollPane + CheckboxGroup = :(
    Salutation développeur,
    Mise en situation :
    Dans un fenêtre, je crée un panel.setLayout(new GridLayout());
    Je crée un groupe de bouton radio CheckboxGroup.
    Je remplie le GridLayout avec des boutons radio ajoutés eu même au CheckboxGroup.
    Dernier point, je rajoute un ScrollPane à mon panel.

    Mon problème : Les boutons radio ne restent pas dans le GridLayout... Pire, ils empiètent sur les autres panels

    Ma question : Avez vous une solution, merci beaucoup

    Anexe : un programme que j'ai vite fait codé pour montrer le problème

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class Fenetre extends JFrame{
     
            private JPanel pCentre ; 
    		private CheckboxGroup groupeRadio;
     
            public Fenetre(){
     
                    this.setTitle("JScrollPane + CheckboxGroup");
                    this.setSize(300, 300);
                    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    this.setLocationRelativeTo(null);
     
     
                    this.setLayout(new BorderLayout());
     
     
    				//Je place un bouton en haut
                    this.getContentPane().add(new JButton("UP"), BorderLayout.NORTH);
                    //Je place un bouton en bas
                    this.getContentPane().add(new JButton("DOWN"), BorderLayout.SOUTH);
    				//Je place un bouton à gauche
                    this.getContentPane().add(new JButton("LEFT"), BorderLayout.WEST);
     
    				//Au centre un gridlayout de 25 lignes et 4 colonnes
    				pCentre = new JPanel();
    				pCentre.setLayout(new GridLayout(25,4));
     
    				//Je cree un groupe de bouton radio
    				groupeRadio = new CheckboxGroup();
     
    				//On rempli le GridLayout
    				for(int i=0;i<25;i++){
    					pCentre.add(new Checkbox("ligne : "+i, groupeRadio,false));
    					pCentre.add(new JLabel("colonne 1"));
    					pCentre.add(new JLabel("colonne 2"));
    					pCentre.add(new JLabel("colonne 3"));
    				}
     
    				// Ajout du scrollPane
    				JScrollPane scrollPane = new JScrollPane(pCentre);
     
    				// On insere le tout dans la fenetre
                    this.getContentPane().add(scrollPane, BorderLayout.CENTER);  
     
                    this.setVisible(true);
     
            }  
     
    		public static void main (String[] args){
    			new Fenetre();
    		}
    }

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    J'ai essayé de contourner le problème mais j'en rencontre un autre...
    Au lieu d'utiliser un GridLayout, j'utilise un JTable ainsi il n'y a pas de débordement.
    Mon problème :
    Au lieu de m'afficher le bouton radio, il m'affiche :
    java.awt.Checkbox[checkbox15,0,0,0x0,invalid,label=ligne : 15,state=false]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(int i=0;i<25;i++){
    					Vector row = new Vector();
    					row.add(new Checkbox("ligne : "+i, groupeRadio,false));
    					row.add(new String("colonne 1"));
    					row.add(new String("colonne 2"));
    					row.add(new String("colonne 3"));
    					model.addRows(row);
    				}

  3. #3
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    J'ai finalement remplacé les bouton radio par des JButton. Avec un petit look & feel sa rend pas trop mal.

    ps : Si vous arrivez à trouver le problème dont je suis victime n'hésitez à poster votre réponse.

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah faudrait commencer par utiliser un composant Swing au lieu d'un composant AWT. En l'occurence le composant Swing est le JRadioButton et doit être rassemblé dans un ButtonGroup.

    Pour rappel, c'est en général une très mauvaise idée d'utiliser des composants AWT dans une application Swing. cf FAQ

  5. #5
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    J'ai honte de moi

    c'était bien un conflit entre awt et swing.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Je cree un groupe de bouton radio
    				groupeRadio = new ButtonGroup();
     
    				//On rempli le GridLayout
    				for(int i=0;i<25;i++){
    					JRadioButton boutton = new JRadioButton ("ligne : "+i);
    					pCentre.add(boutton);
    					groupeRadio.add(boutton);
    					pCentre.add(new JLabel("colonne 1"));
    					pCentre.add(new JLabel("colonne 2"));
    					pCentre.add(new JLabel("colonne 3"));
    				}
    Sa marche très bien maintenant
    Merci sinok

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JOptionPane et JScrollPane
    Par calypso dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 15/06/2004, 11h25
  2. [JFrame][JScrollPane] rafraichissement
    Par iuz dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 14/05/2004, 11h08
  3. [JSCROLLPANE][JTABLE] Probleme de raf...
    Par thibaud dans le forum Composants
    Réponses: 5
    Dernier message: 04/05/2004, 11h26
  4. [JScrollPane]Comment savoir quand une scrollbar apparait ?
    Par FrigoAcide dans le forum Composants
    Réponses: 4
    Dernier message: 29/04/2004, 10h10
  5. [JScrollPane] élargir la taille
    Par nyny_p dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 03/05/2003, 10h54

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