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

Agents de placement/Fenêtres Java Discussion :

Problèmes de redimensionnement


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Points : 48
    Points
    48
    Par défaut Problèmes de redimensionnement
    Bonjour,

    J'ai commencé à développer en Java en utilisant Swing et je suis un peu perdu (pour info je viens du C++ / Qt).

    Ma première fenêtre est un panneau d'identification :
    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
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
     
    import javax.swing.AbstractButton;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.border.TitledBorder;
     
    public class LogWindow extends JFrame implements ActionListener, KeyListener
    {
        //private JPanel panelHaut, panelBas, panelGauche, panelDroite, panelCentre, panelConnexion;
     
        private JButton bConnect;
        private JButton bCancel;
     
        private JTextField tLogin;
        private JPasswordField tPassword;
     
        public    LogWindow()
            {
                this.initObj();
                this.setSize (new Dimension (600,400));
                //this.setResizable (false);
                this.setTitle("Loggin Window");
                this.setLocationRelativeTo(null);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
                Container contener = this.getContentPane();
     
                JPanel panelHaut = new JPanel(new GridLayout (1,1));
                JPanel panelBas = new JPanel(new GridLayout (1,1));
                JPanel panelGauche = new JPanel(new GridLayout (1,1));
                JPanel panelDroite = new JPanel(new GridLayout (1,1));
                JPanel panelCentre = new JPanel(new GridLayout (0,1));
                JPanel panelConnexion = new JPanel();
     
                contener.add(panelHaut, BorderLayout.NORTH);
                contener.add(panelBas, BorderLayout.SOUTH);
                contener.add(panelGauche, BorderLayout.EAST);
                contener.add(panelDroite, BorderLayout.WEST);
                contener.add(panelCentre, BorderLayout.CENTER);
     
                JLabel lLogin = new JLabel("Username");
                JLabel lPassword = new JLabel("Password");
                panelCentre.setBorder(new TitledBorder("Connection"));
                panelCentre.add(panelConnexion);
                panelCentre.add(lLogin);
                panelCentre.add(tLogin);
                panelCentre.add(lPassword);          
                panelCentre.add(tPassword);
                panelCentre.add(bConnect);
                //bConnect.addActionListener(new ValiderListener());
                panelCentre.add(bCancel);
     
                panelConnexion.add(new JLabel ("Welcome"));
     
                this.setVisible(true);
            }
     
        public    void    initObj()
            {
                this.bConnect = new JButton("Connect");
                this.bConnect.addActionListener(this);
                this.bCancel = new JButton("Cancel");
                this.bCancel.addActionListener(this);
                this.tLogin = new JTextField();
                this.tPassword = new JPasswordField();         
                this.tLogin.addKeyListener(this);
                this.tPassword.addKeyListener(this);
            }
     
        public void keyPressed(KeyEvent ke)
            {
                if(ke.getKeyCode() == KeyEvent.VK_ENTER)
                    this.bConnect.doClick();
            }
     
        public void actionPerformed(ActionEvent event) 
            {
                 Object  source= event.getSource();
     
                    if  (source == bCancel)
                        System.exit(0);
                    else if (source == bConnect)
                        {
                            new ReportWindow();
                            /*
                            String login = tLogin.getText();
                            String pass = new String(tPassword.getPassword());
                            
                            if ((login.equals("root")) && (pass.equals("root")))
                                {
                                    this.setVisible(false);
                                    new ReportWindow();
                                }
                            else
                                {
                                    JOptionPane errorPanel = new JOptionPane();
                                    errorPanel.showMessageDialog(null, "Invalid Username/Password", "Error", JOptionPane.ERROR_MESSAGE);
                                    this.tLogin.selectAll();
                                    this.tPassword.setText("");
                                    this.tLogin.requestFocus();
                                }
                                */
                        }
            }
     
        @Override
        public void keyReleased(KeyEvent arg0)
            {
                // TODO Auto-generated method stub
            }
     
        @Override
        public void keyTyped(KeyEvent arg0)
            {
                // TODO Auto-generated method stub
            }
    }
    Le résultat est plutôt correct au départ mais ensuite ça se complique...

    Je m'explique, j'aurais aimé que les JTextField ne se redimensionnent pas, en tout cas en hauteur, quand je redimensionne la fenêtre. J'ai essayé la méthode setMaximumSize mais rien n'y fait. Je pense que comme je suis dans un layout bah voila.. J'ai peut être pas utilisé le bon aussi..

    Ensuite une fois que l'identification est bonne on passe à la deuxième fenêtre.

    Mon but était de diviser ma fenêtre en deux verticalement :
    - Un coté (gauche) avec - Un bouton (qui va chercher des informations dans un flux)
    - Une combobox qui se remplit avec les informations récupérées.

    Les deux widget étant l'un au-dessus de l'autre.
    - L'autre coté (droit) avec - Une JTable qui se remplit en fonction du choix fait dans la combobox.

    Voici le code :
    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
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.GridLayout;
     
    import javax.swing.BoxLayout;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JViewport;
    import javax.swing.table.DefaultTableModel;
     
    public class ReportWindow extends JFrame
        {
            public  ReportWindow()
                {
                    this.setSize (new Dimension (900,600));
                    //this.setResizable (false);
                    this.setTitle("Report Window");
                    this.setLocationRelativeTo(null);
                    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    this.setVisible(true);
     
                    Container contener = this.getContentPane();
     
                    JPanel panelHaut = new JPanel(new GridLayout (1,1));
                    JPanel panelBas = new JPanel(new GridLayout (1,1));
                    JPanel panelGauche = new JPanel(new GridLayout (0,1));
                    JPanel panelDroite = new JPanel(new GridLayout (0,1));
                    JPanel panelCentre = new JPanel(new GridLayout (1,1));
     
                    contener.add(panelHaut, BorderLayout.NORTH);
                    contener.add(panelBas, BorderLayout.SOUTH);
                    contener.add(panelDroite, BorderLayout.EAST);
                    contener.add(panelGauche, BorderLayout.WEST);
                    contener.add(panelCentre, BorderLayout.CENTER);
     
                    JPanel tmp = new JPanel();
     
                    JButton bImport = new JButton("Import bookings");
                    JComboBox cmbBooking = new JComboBox();
                    tmp.add(bImport);
                    tmp.add(cmbBooking);
                    cmbBooking.setPreferredSize(new Dimension(200, 20));
                    panelGauche.add(tmp);
     
                    Object[][] data = {
                                {"Cysboy", "28 ans", "1.80 m"},
                                {"BZHHydde", "28 ans", "1.80 m"},
                                {"IamBow", "24 ans", "1.90 m"},
                                {"FunMan", "32 ans", "1.85 m"}
                    };
     
                    String  title[] = {"Pseudo", "Age", "Taille"};
                    JTable tableau = new JTable(data, title);
                    panelDroite.add(new JScrollPane(tableau));
     
                    this.setVisible(true);
                }
        }
    Et la malheureusement pour moi j'ai plein de problèmes :
    - Sur le panneau de gauche je n'arrive pas à avoir le bouton et en-dessous la combobox
    - Quand je redimensionne la fenêtre, le panel droit cache celui de gauche
    - Je n'arrive pas à éditer le nombre de colonnes et titres des colonnes quand je le souhaite. Là j'ai mis des choses dans la table pour voir un peu ce que cela donnait mais à l'ouverture de la fenêtre elle doit être vide.

    Quelqu'un saurait-il m'indiquer comment résoudre ces quelques problèmes ?

    Merci d'avance pour votre aide.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 13
    Points : 14
    Points
    14
    Par défaut
    Si tu ne veux pas forcément pouvoir redimensionner ta fenêtre tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.setLocationRelativeTo(null);
    Cela empêchera tout de bouger, mais ta fenêtre sera aussi impossible à redimensionner.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Pimon07 Voir le message
    Si tu ne veux pas forcément pouvoir redimensionner ta fenêtre tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetre.setLocationRelativeTo(null);
    Cela empêchera tout de bouger, mais ta fenêtre sera aussi impossible à redimensionner.
    Non, ça c'est pour centrer la fenêtre. Pour empêcher son redimensionnement, c'est setResizable(false). Pour éviter l'étirement vertical des champs d'un formulaire, dans une fenêtre redimensionnable, il vaut mieux utiliser un GridBagLayout (ou un SpringLayout), qu'un GridLayout (dont la grille remplit toujours tout le conteneur). Il y a aussi des bibliothèques qui fournissent des LayoutManager adaptés et plus simples à paramétrer (comme FormLayout de JGoodies).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Problème avec redimensionnement tableau
    Par PoZZyX dans le forum Réseau
    Réponses: 18
    Dernier message: 20/04/2006, 15h46
  2. [CSS] problème de redimensionnement
    Par cootchy dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 14/02/2006, 17h42
  3. [SWT][Layout]problème de redimensionnement d'un Text
    Par McFoggy dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 05/08/2004, 12h10
  4. Problème de redimensionnement
    Par routouf dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 16/07/2004, 16h27
  5. Problème de redimensionnement
    Par david71 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 14/05/2004, 17h39

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