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 :

Affichage de composants (avec NetBeans)


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Points : 50
    Points
    50
    Par défaut Affichage de composants (avec NetBeans)
    Bonjour,

    je fais un petit programme de test, et je rencontre un problème lié (apparamment) à NetBeans.

    Voila ma fenêtre principale :
    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
    59
    60
    public class MyFrame extends javax.swing.JFrame {
     
        /** Creates new form MyFrame */
        public MyFrame()
        {
            initComponents();
            JLabel l = new JLabel("Salut");
            l.setVisible(true);
            getContentPane().add(l);
            validate();
            repaint();
            pack();
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jLabel1 = new javax.swing.JLabel();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jLabel1.setText("Frame");
     
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .add(116, 116, 116)
                    .add(jLabel1)
                    .addContainerGap(254, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(146, Short.MAX_VALUE)
                    .add(jLabel1)
                    .add(140, 140, 140))
            );
     
            pack();
        }// </editor-fold>
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
                new MyFrame().setVisible(true);
        }
     
        // Variables declaration - do not modify
        private javax.swing.JLabel jLabel1;
        // End of variables declaration
     
    }

    Comme vous pouvez le voir dans le code généré automatiquement, j'ai placé un JLabel contenant le texte "Frame" dans ma fenêtre. Donc ce JLabel est instancié et positionné grâce à la méthode initComponents().
    Ensuite je veux rajouter, par programmation, un autre JLabel, contenant le texte "Salut", mais problème : il ne s'affiche pas !
    Au lancement, seul le label "Frame" est affiché, je ne comprends pas pourquoi.

    En revanche si j'enlève l'appel à la méthode initComponents(), j'ai bien mon label "Salut" mais plus le "Frame" (normal).

    Savez-vous comment je peux faire pour pouvoir à la fois positionner des composants avec l'éditeur de netbeans et en ajouter par programmation ?

    Merci d'avance

    ps : j'ai essayé de faire un getContentPane().removeAll() avant mon getContentPane().add(l), ça enlève bien le "Frame", mais le "Salut" n'apparaît toujours pas :o

    ps2 : en modifiant le layout que netbeans génère et en mettant un FlowLayout j'ai bien les 2 labels, mais du coup je perds la présentation
    Si vous savez comment faire cohabiter les 2 je vous en serai très reconnaissant^^

  2. #2
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 53
    Points
    53
    Par défaut
    Salut,

    Cette ajout (getContentPane().add(l) ne peux pas se faire de cette façon.

    Pour pouvoir ajouter comme tu veux le faire, il faut dissocier chaque partie du layout, d'où l'obligation de faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        GroupLayout layout;
        Group layoutHorizontal, layoutVertical;
        SequentialGroup layoutHorizontalSequential, layoutVerticalSequential;

    Voici le code complet
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    import javax.swing.JLabel;
     
    import javax.swing.GroupLayout;
    import javax.swing.GroupLayout.Group;
    import javax.swing.GroupLayout.SequentialGroup;
     
    public class MyFrame extends javax.swing.JFrame {
        GroupLayout layout;
        Group layoutHorizontal, layoutVertical;
        SequentialGroup layoutHorizontalSequential, layoutVerticalSequential;
     
        /** Creates new form MyFrame */
        public MyFrame()
        {
            initComponents();
     
            JLabel l = new JLabel("Salut");
            l.setVisible(true);
     
            layoutHorizontalSequential.addComponent(l);
            layoutVerticalSequential.addComponent(l);
     
            validate();
            repaint();
            pack();
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jLabel1 = new JLabel();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jLabel1.setText("Frame");
     
            layout = new GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
     
            layoutHorizontalSequential = layout.createSequentialGroup()
    			.addGap(116, 116, 116)
    			.addComponent(jLabel1)
    			.addContainerGap(254, Short.MAX_VALUE);
     
            layoutHorizontal = layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            	.addGroup(layoutHorizontalSequential);
     
            layoutVerticalSequential = layout.createSequentialGroup()
            	.addContainerGap(146, Short.MAX_VALUE)
            	.addComponent(jLabel1)
            	.addGap(140, 140, 140);
     
            layoutVertical = layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            	.addGroup(GroupLayout.Alignment.TRAILING, layoutVerticalSequential
                );
     
            layout.setHorizontalGroup(layoutHorizontal);
     
            layout.setVerticalGroup(layoutVertical);
     
            pack();
        }// </editor-fold>
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
                new MyFrame().setVisible(true);
        }
     
        // Variables declaration - do not modify
        private javax.swing.JLabel jLabel1;
        // End of variables declaration
     
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 106
    Points : 50
    Points
    50
    Par défaut
    ok merci beaucoup

Discussions similaires

  1. probleme d'affichage avec netbeans
    Par steven10 dans le forum NetBeans
    Réponses: 4
    Dernier message: 13/06/2009, 13h54
  2. Réponses: 1
    Dernier message: 12/05/2009, 09h49
  3. Probleme affichage composant avec gtk_table
    Par argon dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 14/02/2008, 11h20
  4. Centrer un composant avec netbeans/matisse
    Par clebig dans le forum NetBeans
    Réponses: 1
    Dernier message: 03/08/2006, 22h32
  5. Affichage caractères asiatique avec composants standard
    Par FransTreb dans le forum Composants VCL
    Réponses: 5
    Dernier message: 05/12/2005, 17h20

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