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

Interfaces Graphiques en Java Discussion :

Plug-In WindowBuilder sous Eclipse


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    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 : 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
    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
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    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
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    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
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    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
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 980
    Points
    7 980
    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).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    Bonsoir,

    Je rame. Mon source:

    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
    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
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    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 : 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
    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.

Discussions similaires

  1. Installation du plug-in GlassFish sous Eclipse Helios
    Par geeksDeve dans le forum Glassfish et Payara
    Réponses: 5
    Dernier message: 09/01/2013, 12h41
  2. Plug-in CXF sous Eclipse
    Par mateojl dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 02/06/2009, 19h08
  3. Réponses: 1
    Dernier message: 05/02/2007, 13h27
  4. Plug-in pour le dev J2ME sous eclipse
    Par imonsif dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/11/2006, 14h00
  5. [Info]Meilleur plug in de refactoring sous Eclipse
    Par miage2004g1 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 12/04/2005, 16h22

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