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 :

Erreur "BoxLayout can't be shared"


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Par défaut Erreur "BoxLayout can't be shared"
    Bonjour,

    avant tout, excusez moi si cette question a déjà été posée, mais je n'ai trouvé la réponse nulle part.

    J'aimerais savoir d'ou vient l'Exception AWT "BoxLayout can't be shared" qui se produit lorsque je fais un setVisible(true) sur un Box.

    Merci d'avance, et excusez mon ignorance...

  2. #2
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Tu utilises le même Layout dans plusieurs composants ?

  3. #3
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Je sais que cela ne répond pas vraiment à ta question, mais normalement, il n'est pas nécessaire de faire un setVisible(true) sur un layout, c'est même pas très logique puisqu'il ne sert qu'à organiser tes différents composants, le setVisible(true) se fait sur la fenêtre a laquelle tu a afffecté ton layout.

    Mais tu avais sans doute une bonne raison de vouloir le faire, je suppose et c'est probablement là que réside ton problème.... (C'est clair??) Si j'ai vu juste quel est ton problème?

  4. #4
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Box est un composant (hérité de JComponent) et non un layout, son layout est justement un BoxLayout
    Sinon, une même instance de BoxLayout ne peut pas être le layout de plusieurs composants.

  5. #5
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Citation Envoyé par herve91
    Box est un composant (hérité de JComponent) et non un layout, son layout est justement un BoxLayout
    Autant pour moi, je suis allé un peu vite en besogne...

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Par défaut
    en fait, je fais le setVisible sur une JFrame, qui contient un objet de type Proprietes (cf ci dessous), qui contient le Box en question... (l'objet ver)

    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
    public class Proprietes extends JScrollPane {
     
     
        private javax.swing.JPanel hor;
        private javax.swing.JPanel ver;
     
        private javax.swing.JLabel image;
        private javax.swing.JLabel texte;
        private javax.swing.JLabel titre;
     
        private FenMenu parent; // la JFrame sur laquelle je fais le setVisible
     
     
        public Proprietes(FenMenu par) {
     
            parent = par;
            this.setMinimumSize(new Dimension(500,500));
     
            hor = new JPanel(new BoxLayout(hor, BoxLayout.X_AXIS));
            ver = new JPanel(new BoxLayout(ver, BoxLayout.Y_AXIS));
     
            image = new javax.swing.JLabel();
            titre = new javax.swing.JLabel();
            texte = new javax.swing.JLabel();
     
            image.setHorizontalAlignment(JLabel.LEFT);
            image.setIcon(new javax.swing.ImageIcon(getClass().getResource("/IMG/met.gif")));
            image.setLabelFor(image);
            //image.setHorizontalTextPosition(JLabel.LEFT);
     
            titre.setHorizontalAlignment(JLabel.CENTER);
     
            texte.setHorizontalAlignment(JLabel.LEFT);
     
            hor.add(image);
            hor.add(Box.createHorizontalStrut(5));
            hor.add(titre);
     
            ver.add(hor);
            ver.add(texte);
     
            this.add(ver);
     
        }

  7. #7
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Essai de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private Box hor,ver;
     
    hor=Box.createHorizontalBox();
    ver=Box.createVerticalBox();
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private javax.swing.JPanel hor;
    private javax.swing.JPanel ver; 
     
    hor = new JPanel(new BoxLayout(hor, BoxLayout.X_AXIS));
    ver = new JPanel(new BoxLayout(ver, BoxLayout.Y_AXIS));

  8. #8
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 3
    Par défaut
    Ah oui, effectivement, ça marche mieux comme ça.
    Je ne pensait pas qu'il y avait une différence entre un Box et un JPanel avec un BoxLayout...

    Merci beaucoup.

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

Discussions similaires

  1. Erreur : boxLayout can't be shared
    Par bilou_12 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 28/03/2012, 18h21
  2. Erreur du type : Can't call method
    Par david59390 dans le forum Langage
    Réponses: 5
    Dernier message: 06/01/2009, 13h39
  3. Erreur : Activex component can't create Object
    Par leo13 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2008, 12h55
  4. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31

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