Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1
    Nouveau Membre du Club
    Inscrit en
    février 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 205
    Points : 33
    Points
    33

    Par défaut Plug-In WindowBuilder sous Eclipse

    Bonjour,

    Je suis sous Eclipse Juno (dernière version), j’utilise le plug-in WindowBuilder. J'ai deux questions. La première sur ce plug-in proprement dit et la seconde une question de Java.

    1 - Je viens de VB6 et Delphi. Ces IDE sont super. Je ne pense pas la même chose de WindowBuiler. J'ai toute les peines du monde à mettre un simple bouton à l'endroit voulu. C'est une catastrophe. J'ai essayé des layout (AWT et Swing) en tout genre, notamment des GridBagLayout. La philosophie de découper un layout en grille, puis d’accéder et mettre des composant dans les cases de ces grille est pas mal. Sauf que c'est une horreur. De mon point de vue.

    Question: existe-t-il la possibilité de mettre des composants au pixel près, comme en VB ? Il y a notamment sous Java, des méthode setBounds qui permettent de positionner un composant au pixel près et avec la taille voulu. Sauf que cela ne semble pas marcher sur WindowBuiler. Une solution ?

    2- Voila mon code (pas propre, c'est un test):
    Code :
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    import java.awt.EventQueue;
     
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollBar;
    import javax.swing.JScrollPane;
     
    import java.awt.BorderLayout;
    import javax.swing.JButton;
     
    import java.awt.Dimension;
    import java.awt.GridBagLayout;
    import java.awt.GridBagConstraints;
    import java.awt.Insets;
    import java.awt.TextArea;
     
    import javax.swing.JLabel;
    import javax.swing.JProgressBar;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.SwingConstants;
    import java.awt.Color;
    import javax.swing.UIManager;
    import javax.swing.JTextArea;
     
    public class testWB {
     
        private JFrame frame;
     
        /**
         * Launch the application.
         */
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        testWB window = new testWB();
                        window.frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
     
        /**
         * Create the application.
         */
        public testWB() {
            initialize();
        }
     
        /**
         * Initialize the contents of the frame.
         */
        private void initialize() {
            frame = new JFrame();
            frame.setBounds(100, 100, 650, 400);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            JPanel panelCenter = new JPanel();
            frame.getContentPane().add(panelCenter, BorderLayout.CENTER);
     
            GridBagLayout gbl_panelCenter = new GridBagLayout();
            gbl_panelCenter.columnWidths = new int[]{184, 65, 0, 0, 0, 0, 0, 0, 0};
            gbl_panelCenter.rowHeights = new int[]{23, 0, 0, 0, 0, 0, 0, 0, 0, 0};
            gbl_panelCenter.columnWeights = new double[]{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
            gbl_panelCenter.rowWeights = new double[]{0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
            panelCenter.setLayout(gbl_panelCenter);
     
            JLabel lblNewLabel = new JLabel("Boutton 1");
            GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
            gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
            gbc_lblNewLabel.gridx = 0;
            gbc_lblNewLabel.gridy = 1;
            panelCenter.add(lblNewLabel, gbc_lblNewLabel);
     
                    final JProgressBar progressBar = new JProgressBar();
     
                    GridBagConstraints gbc_progressBar = new GridBagConstraints();
                    gbc_progressBar.insets = new Insets(0, 0, 5, 5);
                    gbc_progressBar.gridx = 1;
                    gbc_progressBar.gridy = 1;
     
                    panelCenter.add(progressBar, gbc_progressBar);
                    progressBar.setValue(50);
                    progressBar.setStringPainted(true);
                    progressBar.setSize(10,10);
                    //progressBar.setForeground(new Color(51, 255, 0));
                    // progressBar.setBackground(UIManager.getColor("Button.background"));
                    // progressBar.setSize(25,10);
     
                    final JTextArea textArea = new JTextArea();
                    panelCenter.add(textArea);
                    textArea.setAutoscrolls(false);
                    textArea.setEditable(false);
                    JScrollPane scrollPane = new JScrollPane(textArea);
                    scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
                    scrollPane.setPreferredSize(new Dimension(100, 150));
                    panelCenter.add(scrollPane);
     
     
                    final JButton btnNewButton = new JButton("Button");
     
                            btnNewButton.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                    //                callback (e);
                                    // progressBar.setValue(75);
                                    if (e.getSource() == btnNewButton) {
                                         // JOptionPane.showMessageDialog(frame, "klhqsdlkdhs");
                                        // progressBar.setValue(100);
                                         // for(int i=0; i<15; i++) ;
                                            textArea.append("append!!!\n");
                                    }
                                }    
                            });
     
                            GridBagConstraints gbc_btnNewButton = new GridBagConstraints();
                            gbc_btnNewButton.insets = new Insets(0, 0, 5, 5);
                            gbc_btnNewButton.anchor = GridBagConstraints.NORTHWEST;
                            gbc_btnNewButton.gridx = 2;
                            gbc_btnNewButton.gridy = 1;
                            panelCenter.add(btnNewButton, gbc_btnNewButton);
     
                            GridBagConstraints gbc_textArea = new GridBagConstraints();
                            gbc_textArea.gridwidth = 3;
                            gbc_textArea.insets = new Insets(0, 0, 5, 5);
                            gbc_textArea.fill = GridBagConstraints.BOTH;
                            gbc_textArea.gridx = 0;
                            gbc_textArea.gridy = 3;
                            panelCenter.add(textArea, gbc_textArea);
        }
     
        private void callback(java.awt.event.ActionEvent evt) {
            System.out.println("Ca passe dans call back"); 
    //        progressBar.setValue(75);
    /*
            if (e.getSource() == btnNewButton)
                 JOptionPane.showMessageDialog(frame, "klhqsdlkdhs") ; 
                 progressBar.setValue(100);
    */
        }
    }
    Le problème est que ça ne fonction pas bien.

    A la main (sans WindowBuilder), j'ai essayé de mettre un JScrollPane sur un objet JTextArea, lui même dans un container JPanel, lui même dans une JFrame. Lorsque je reviens dans la zone "Design" pour les graphiques, le plug-in WindowBuilder me génère erreur suivante:
    The textArea component is added to a parent component more than once.

    JScrollPane scrollPane = new JScrollPane(textArea);
    panelCenter.add(textArea, gbc_textArea);
    Lorsque je supprime panelCenter.add(textArea, gbc_textArea);, ça fonctionne, le JScrolPanel est bien associé au JTextArea mais il est en "haut" au lieu d’être en bas (en bas du bouton).

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci de toute aide.

  2. #2
    Nouveau Membre du Club
    Inscrit en
    février 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 205
    Points : 33
    Points
    33

    Par défaut

    Pour la question 2, j'ai réussi. J'ai ajouté au Panel l'objet ScrollPane avec un GridBagConstraints bien construit. OK.

    En revanche pour la question 1, j'émets de sérieux doutes sur le Plug-In WindowBuilder (sans doute n'ai-je pas consacré suffisamment de temps, encore). J'ai refait un peu de source à la main, et j'ai notamment renommé certains objets et lorsque je suis revenu en mode Design, j'ai eu des messages d'erreur indiquant que les noms de variable avaient changé et que la vue en mode Design ne pouvait plus se faire. J'ai arrangé tout cela.

    Je repose ma question: est-ce que dans WindowBuilder (plug-in) il y a moyen de mettre les composants au pixel près, sans se soucier des layout ? Il y a moyen, en code Java, de mettre de composant où on veut, au pixel près, avec les méthode SetBounds(), mais il semblerait que l'on ne puise pas le faire avec WindowBuilder. Il semblerait que l'usage d'un Layout soit indispensable pour ajouter des composants. Quid ?

  3. #3
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 754
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 754
    Points : 11 827
    Points
    11 827

    Par défaut

    Placer ses composants au pixel près à grands coups de setBound est une mauvaise pratique en soit.

    Redimensionnement impossible en fonction de la taille de la fenêtre.
    Applications qui d'un système à l'autre, voir même d'un look and feel à l'autre vont proposer des rendus boiteux (en effets, les polices ne prennent pas toutes le même espace et ainsi de suite).
    Le éléments contenus dans les scrollpane qui n'activent pas le scroll a moins qu'on ne leur set manuellement leur preferredSize.
    Code spaghetti à moitié unmaintenable...

    Et ainsi de suite pour les horreurs.


    Le problème ici, c'est plutôt que tu pars un peu bille en tête dans le GridBagLayout sans vraiment savoir à quoi en correspond les options. (weightx/y, fill, anchor et autres joyeusetés). Puis la bestiole est un poil trop complexe à mon gout pour cette tâche.

    Par contre, Windowbuilder supporte l'excellent FormLayout, qui lui te laissera un peu plus de marge et de compréhension par rapport à ce que tu fais, et, de plus est vraiment prévu pour tout ce qui est redimensionnement et adaption à touts type d'écrans.

    Voici un tutoriel concernant son utilisation sous WindowBuilder:
    https://developers.google.com/java-d...ies_formlayout

    Un tuto sur le FormLayout en lui même: http://www.thekua.com/rant/2006/02/t...rief-tutorial/

    Ainsi qu'une cheat sheet pour ce layout: http://web.archive.org/web/200606131...at%20Sheet.pdf
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Nouveau Membre du Club
    Inscrit en
    février 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 205
    Points : 33
    Points
    33

    Par défaut

    OK, merci pour les liens.

    J'ai une question, non spécifique à WindowBuilder. J esouhaiterais mettre un barre de progression. J'ai essayé le composant JProgressBar mais je n'arrive pas a augmenter sa taille (en largeur. Comment faire ? j'ai essayé toute les méthode, size() and co. No result.

    Est-ce que il faut la mettre dans un Panel ?

  5. #5
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 754
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 754
    Points : 11 827
    Points
    11 827

    Par défaut

    Normalement, pas besoin de toucher au méthodes size & cie, c'est le rôle du layout.

    Comment places tu ta JProgressBar dans ton Layout?
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Nouveau Membre du Club
    Inscrit en
    février 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 205
    Points : 33
    Points
    33

    Par défaut

    Je ne lis tes liens qu'en ce moment, seulement. Les layouts, c'est imbuvable.

    Je regrete mon VB.

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro Renaud Warnotte
    Développeur informatique
    Inscrit en
    août 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Nom : Homme Renaud Warnotte
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2006
    Messages : 2 582
    Points : 4 390
    Points
    4 390

    Par défaut

    Citation Envoyé par Jolt0x Voir le message
    Je regrete mon VB.
    A mon avis c'est une question d'habitude que je peux comprendre, mais franchement VB ... ce n'est pas trop ca

    Une fois les layout maitrisés tu changeras peut être d'avis.

    Sinon dans windowsbuilder il existe bel et bien le "absolute layout" qui permet de position au pixel près (mais sinok a raison sur ce point, c'est pas top top).

  8. #8
    Nouveau Membre du Club
    Inscrit en
    février 2010
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : février 2010
    Messages : 205
    Points : 33
    Points
    33

    Par défaut

    Bonsoir,

    Je rame. Mon source:

    Code :
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    import java.awt.BorderLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JProgressBar;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
     
     
    public class MyJProgressBar {
     
     
    	JFrame MyFrame;
    	JLabel lblFile;
    	JLabel lbl;
    	JTextField MyTextField;
    	JTextArea MyTextArea;
    	// JTextField MyTextField;
    	JProgressBar MyProgressBar;
     
    	JButton makeNewFolderButton; 
    	JButton okButton; 
    	JButton cancelButton; 
     
     
    	public MyJProgressBar() {
     
    		MyFrame = new JFrame("Ma Frame");
    		// MyFrame.setSize(600, 350);
    		MyFrame.setLayout(new GridBagLayout());
    		MyFrame.setBounds(150, 100, 650, 400);
    		MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		lblFile = new JLabel("sdfsdfdfsdfsdf");
    		lbl = new JLabel("File : ");
     
    		MyTextField = new JTextField();
     
    		MyTextArea = new JTextArea();
     
    		JButton okButton = new JButton("Ok");
    		JButton cancelButton = new JButton("Cancel");
     
    		MyProgressBar = new JProgressBar();
     
    		okButton.setPreferredSize(cancelButton.getPreferredSize());
    		okButton.setMinimumSize(cancelButton.getMinimumSize());
     
    		GridBagConstraints gbc = new GridBagConstraints();
     
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		gbc.gridwidth = GridBagConstraints.REMAINDER;
    		gbc.gridheight = 1;
    		gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
    		gbc.insets = new Insets(10, 15, 0, 0); // Marge à gauche de 15 et marge au dessus de 10.
    		MyFrame.add(lbl, gbc);
     
     
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    //		gbc.gridwidth = GridBagConstraints.REMAINDER;
    		gbc.gridwidth = 3;
    		gbc.gridheight = 1;
    		gbc.weighty = 0;
    		gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
    		gbc.insets = new Insets(10, 15, 0, 0); // Marge à gauche de 15 et marge au dessus de 10.
    		MyFrame.add(lblFile, gbc);
     
     
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		gbc.gridwidth = 3;
    		gbc.gridheight = 1;
    		gbc.weightx = 1;
    		gbc.weighty = 0;
    		gbc.fill = GridBagConstraints.BOTH;
    		gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
    		gbc.insets = new Insets(10, 15, 0, 0); // Marge à gauche de 15 et marge au dessus de 10.
    		MyFrame.add(MyProgressBar, gbc);
     
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		gbc.gridwidth = 3;
    		gbc.gridheight = 1;
    		gbc.weightx = 1;
    		gbc.weighty = 1;
    		gbc.fill = GridBagConstraints.BOTH;
    		gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
    		gbc.insets = new Insets(10, 15, 0, 0); // Marge à gauche de 15 et marge au dessus de 10.
    		MyFrame.add(MyTextArea, gbc);
     
    		gbc.gridx = 3;
    		gbc.gridy = 3;
    		gbc.gridwidth = 1;
    		gbc.gridheight = 1;
    		gbc.fill = GridBagConstraints.BASELINE;
    		gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
    		gbc.insets = new Insets(10, 15, 0, 0); // Marge à gauche de 15 et marge au dessus de 10.
    		MyFrame.add(okButton, gbc);
     
     
    		/*		
    		JPanel panelCenter = new JPanel();
    		MyFrame.getContentPane().add(panelCenter, BorderLayout.CENTER);
    		GridBagLayout gbl = new GridBagLayout();
    		panelCenter.setLayout(gbl);
    		 */
     
    		MyFrame.setVisible(true);
    		// MyFrame.validate();
    	}
     
     
    	public static void main(String[] args) {
    		MyJProgressBar vMyProgressBar;
    		vMyProgressBar = new MyJProgressBar();
    	}
     
    }
    Mon bouton est trop à droite et il faut le mettre en desous du textArea. Lorsque je positione le gridx à 2, le bouton est caché par le TextArea.

  9. #9
    Modérateur
    Avatar de sinok
    Profil pro
    Inscrit en
    août 2004
    Messages
    8 754
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : août 2004
    Messages : 8 754
    Points : 11 827
    Points
    11 827

    Par défaut

    Tu as mis ton bouton dans la mauvaise case de la grille (sur la même ligne que la JTextArea, une case à droite (3,3) alors qu'il fallait la mettre dans la seconde colonne une ligne en dessous (2,4).

    Dessine ton interface sur papier puis trace ta grille par dessus, ça te permettra de voir efficacement où tu dois placer tes composants.

    De même, afin que ton bouton soit en fin de ligne, iil vaut mieux utiliser LINE_END comme anchor que LINE_START (ça tombe un peu sous le sens).

    Puis lui affecter un poids nul dans ses paramètres de redimensionnement (weighty mis à 0).

    Voici la version corrigée.

    Code :
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JProgressBar;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
     
     
    public class MyJProgressBar {
     
     
        JFrame MyFrame;
        JLabel lblFile;
        JLabel lbl;
        JTextField MyTextField;
        JTextArea MyTextArea;
        // JTextField MyTextField;
        JProgressBar MyProgressBar;
     
        JButton makeNewFolderButton; 
        JButton okButton; 
        JButton cancelButton; 
     
     
        public MyJProgressBar() {
     
            MyFrame = new JFrame("Ma Frame");
            // MyFrame.setSize(600, 350);
            MyFrame.setLayout(new GridBagLayout());
            MyFrame.setBounds(150, 100, 650, 400);
            MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            lblFile = new JLabel("sdfsdfdfsdfsdf");
            lbl = new JLabel("File : ");
     
            MyTextField = new JTextField();
     
            MyTextArea = new JTextArea();
     
            JButton okButton = new JButton("Ok");
            JButton cancelButton = new JButton("Cancel");
     
            MyProgressBar = new JProgressBar();
     
            //okButton.setPreferredSize(cancelButton.getPreferredSize());
            //okButton.setMinimumSize(cancelButton.getMinimumSize());
     
            GridBagConstraints gbc = new GridBagConstraints();
     
            gbc.gridx = 0;
            gbc.gridy = 0;
            gbc.gridwidth = GridBagConstraints.REMAINDER;
            gbc.gridheight = 1;
            gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
            gbc.insets = new Insets(10, 15, 0, 15); // Marge à gauche de 15 et marge au dessus de 10.
            MyFrame.add(lbl, gbc);
     
     
            gbc.gridx = 0;
            gbc.gridy = 1;
    //        gbc.gridwidth = GridBagConstraints.REMAINDER;
            gbc.gridwidth = 3;
            gbc.gridheight = 1;
            gbc.weighty = 0;
            gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
            gbc.insets = new Insets(10, 15, 0, 15); // Marge à gauche de 15 et marge au dessus de 10.
            MyFrame.add(lblFile, gbc);
     
     
            gbc.gridx = 0;
            gbc.gridy = 2;
            gbc.gridwidth = 3;
            gbc.gridheight = 1;
            gbc.weightx = 1;
            gbc.weighty = 0;
            gbc.fill = GridBagConstraints.BOTH;
            gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
            gbc.insets = new Insets(10, 15, 0, 15); // Marge à gauche de 15 et marge au dessus de 10.
            MyFrame.add(MyProgressBar, gbc);
     
            gbc.gridx = 0;
            gbc.gridy = 3;
            gbc.gridwidth = 3;
            gbc.gridheight = 1;
            gbc.weightx = 1;
            gbc.weighty = 1;
            gbc.fill = GridBagConstraints.BOTH;
            gbc.anchor = GridBagConstraints.LINE_START; // ou BASELINE_LEADING mais pas WEST.
            gbc.insets = new Insets(10, 15, 0, 15); // Marge à gauche de 15 et marge au dessus de 10.
            MyFrame.add(MyTextArea, gbc);
     
            gbc.gridx = 2;
            gbc.gridy = 4;
            gbc.gridwidth = 1;
            gbc.gridheight = 1;
            gbc.weightx=0;
            gbc.weighty=0;
            gbc.fill = GridBagConstraints.NONE;
            gbc.anchor = GridBagConstraints.LINE_END; // ou BASELINE_LEADING mais pas WEST.
            gbc.insets = new Insets(10, 15, 5, 15); // Marge à gauche de 15 et marge au dessus de 10.
            MyFrame.add(okButton, gbc);
     
     
            /*        
            JPanel panelCenter = new JPanel();
            MyFrame.getContentPane().add(panelCenter, BorderLayout.CENTER);
            GridBagLayout gbl = new GridBagLayout();
            panelCenter.setLayout(gbl);
             */
     
            MyFrame.setVisible(true);
            // MyFrame.validate();
        }
     
     
        public static void main(String[] args) {
            MyJProgressBar vMyProgressBar;
            vMyProgressBar = new MyJProgressBar();
        }
     
    }
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •