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 :

[Comment Faire?]JButton doit conserver son emplacement lors du redimensionnement.


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut [Comment Faire?]JButton doit conserver son emplacement lors du redimensionnement.
    Bonjour,
    j'ai beau cherché sur internet et essayé de (bien) comprendre le fonctionnement des Lyouts de Swing mais en vain !
    je n'arrive toujours pas à construir une simple interface contenant un JButton qui doit se déplacer pour conserver ses distances à droite et en bas par rapport a la fenetre principale lors du redimensionnement de celle ci.
    NB: je construis mes interfaces à l'aide Netbeans.
    Merci davance pour votre aide.

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    je pense qu'un BoxLayout devrait faire l'affaire.
    Pour les parties supérieure et gauche, ajoute un 'glu', et les parties inférieure et droite un 'strut' de la taille qui te convient. (cf les méthodes statiques Box.create...)

  3. #3
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    merci pour ton aide mais tu peux etre un peu plus explicatif ?

  4. #4
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    interface contenant un JButton qui doit se déplacer pour conserver ses distances à droite et en bas par rapport a la fenetre principale lors du redimensionnement de celle ci.
    NB: je construis mes interfaces à l'aide Netbeans.
    Le plus facile avec NetBeans, c'est le Free Design: tu n'as qu'à placer le Button à l'endroit que tu veux.
    Cependant, personnellement j'utiliserais le BorderLayout (en Java c'est le Layout par défaut pour un JFrame): tu y place en bas un Panel avec FlowLayout et FlowLayout-Properties=Alignment-Right, et tu ajoute le Button dans ce Panel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
    jPanel1.add(jButton1);
    getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
    Ou encore, tu donne un BorderLayout également au Panel et tu modifie dans les JButton-Properties la Layout-Direction du Button sur "After":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    jPanel1.setLayout(new java.awt.BorderLayout());
    jPanel1.add(jButton1, java.awt.BorderLayout.LINE_END);
    getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
    Comme tu vois, il y a différentes solutions. Je ne peux pas te dire laquelle sera la meilleur dans ton cas. En général, je cherche toujours à imbriquer différents Panels avec différents Layout pour arriver au résultat que je veux...

  5. #5
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    je comprends bien ta solution avec les imbrications, je me suis dit peut etre que j'y arriverai avec un seul layout comme gridbaglayout.
    Pour moi le freedesigne ne me résoud pas le probleme.
    merci quand meme pour l'aide

  6. #6
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    je me suis dit peut etre que j'y arriverai avec un seul layout comme gridbaglayout.
    Pour moi le freedesigne ne me résoud pas le probleme.
    Je comprend pas ton souci avec le Free Design, parce que ça se fait avec un seul clique:
    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
    package demo;
    /*
     * NewJFrame1.java
     *
     */
     
    import javax.swing.*;
     
    public class NewJFrame1 extends javax.swing.JFrame {
     
        public NewJFrame1() {
            super("NewJFrame1");
            initComponents();
        }
     
     
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            jButton1 = new javax.swing.JButton();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            jButton1.setText("jButton1");
     
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(317, Short.MAX_VALUE)
                    .add(jButton1)
                    .addContainerGap())
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(266, Short.MAX_VALUE)
                    .add(jButton1)
                    .addContainerGap())
            );
     
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            setBounds((screenSize.width-408)/2, (screenSize.height-334)/2, 408, 334);
        }// </editor-fold>
     
        public static void main(final String[] args) {
            Runnable gui = new Runnable() {
     
                public void run() {
                    new NewJFrame1().setVisible(true);
                }
            };
            //GUI must start on EventDispatchThread:
            SwingUtilities.invokeLater(gui);
        }
     
        // Variables declaration - do not modify
        private javax.swing.JButton jButton1;
        // End of variables declaration
    }
    Le GridBag par contre est déjà plus compliqué, mais le code généré est plus lisible qu'avec le Free Design:
    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
    package demo;
    /*
     * NewJFrame2.java
     *
     */
     
    import javax.swing.*;
     
    public class NewJFrame2 extends javax.swing.JFrame {
     
        public NewJFrame2() {
            super("NewJFrame2");
            initComponents();
        }
     
     
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
            java.awt.GridBagConstraints gridBagConstraints;
     
            jButton1 = new javax.swing.JButton();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            getContentPane().setLayout(new java.awt.GridBagLayout());
     
            jButton1.setText("jButton1");
            gridBagConstraints = new java.awt.GridBagConstraints();
            gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
            gridBagConstraints.weightx = 1.0;
            gridBagConstraints.weighty = 1.0;
            gridBagConstraints.insets = new java.awt.Insets(0, 0, 12, 12);
            getContentPane().add(jButton1, gridBagConstraints);
     
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
            setBounds((screenSize.width-408)/2, (screenSize.height-334)/2, 408, 334);
        }// </editor-fold>
     
        public static void main(final String[] args) {
            Runnable gui = new Runnable() {
     
                public void run() {
                    new NewJFrame2().setVisible(true);
                }
            };
            //GUI must start on EventDispatchThread:
            SwingUtilities.invokeLater(gui);
        }
     
        // Variables declaration - do not modify
        private javax.swing.JButton jButton1;
        // End of variables declaration
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/09/2014, 10h55
  2. Réponses: 1
    Dernier message: 20/06/2014, 10h16
  3. Comment faire changer un appel de methode lors d'une execution
    Par Torx26 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 02/04/2011, 20h28
  4. Réponses: 0
    Dernier message: 16/11/2009, 12h17
  5. Comment faire un backup de son serveur en cas de crash
    Par pierrot10 dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 18/09/2009, 11h45

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