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 :

Problème redimensionnement automatique


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut Problème redimensionnement automatique
    Bonsoir,

    Voila j'ai placé mes composants dans ma fenêtre mais lorsque je modifie le dimensionnement de celle-ci mes deux panels ne suivent pas et ça donne un redimensionnement un peu n'importe comment. Voici mon 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
    68
    69
    70
    71
    72
    73
    74
    75
    package client;
     
    import java.awt.BorderLayout;
    import java.awt.event.KeyEvent;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.ActionMap;
    import javax.swing.InputMap;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.KeyStroke;
     
    public class InterfaceGraphique extends JFrame {
    	private static final long serialVersionUID = -2040488316874518030L;
    	JPanel panel = new JPanel ();
    	JPanel result = new JPanel ();
    	JTextArea envoieTexte = new JTextArea (5, 55);
    	JTextArea receptionTexte = new JTextArea (20, 55);
    	JScrollPane scrollRecept = new JScrollPane ();
    	JScrollPane scrollEnvoi = new JScrollPane ();
     
    		public InterfaceGraphique () {
    			build (); //On initialise notre fenetre
    		}
     
    		private void build () {
    			InputMap inputMap = this.envoieTexte.getInputMap ();
    			ActionMap actionMap = this.envoieTexte.getActionMap ();
    			JMenuBar menuBar = new JMenuBar ();
    			JMenu menu1 = new JMenu ("Fichier");
    			JMenu menu2 = new JMenu ("?");
     
    			menuBar.add (menu1);
    			menuBar.add (menu2);
    			this.setJMenuBar (menuBar);
    			this.setTitle ("Tchat"); //On donne un titre a l'application
    			this.setSize (640, 480); //On donne une taille a notre fenetre
    			this.setLocationRelativeTo (null); //On centre la fenêtre sur l'écran
    			this.setResizable (true); //On autorise le redimensionnement de la fenetre
    			this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); //On dit a l'application de se fermer lors du clic sur la croix
    			this.getContentPane ().add (this.buildResult (), BorderLayout.SOUTH);
    			this.getContentPane ().add (this.buildPanel (), BorderLayout.NORTH);
    			inputMap.put (KeyStroke.getKeyStroke (KeyEvent.VK_ENTER, 0), "envoiTexte");
    			actionMap.put ("envoiTexte", new EnvoiAction (this));
    		}
     
    		private JPanel buildPanel () {
    			this.receptionTexte.setLineWrap (true);
    			this.receptionTexte.setEditable (false);
    			this.scrollRecept.setViewportView (this.receptionTexte);
    			this.panel.add (this.scrollRecept);
     
    			return this.panel;
    		}
     
    		private JPanel buildResult () {
    			this.envoieTexte.setLineWrap (true);
    			this.scrollEnvoi.setViewportView (this.envoieTexte);
    			this.result.add (this.scrollEnvoi);
     
    			return this.result;
    		}
     
    		public JTextArea getEnvoieTexte () {
    			return this.envoieTexte;
    		}
     
    		public JTextArea getReceptionTexte () {
    			return this.receptionTexte;
    		}
     
    }
    Merci d'avance à ceux qui voudront bien m'aider

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Par défaut
    tu peux faire de ta fenêtre une fenêtre qui change pas de taille on utiliser la methode setResizable(boolean) si tu donne la valeur false tu n'auras plus se probleme.
    mais si tu cherche a avoir la taille minimale pour contenir tes composant tu peut utiliser la methode Form.pack();
    grâce a elle tu n'as pas besoin de definir une taille spécifique pour ta frame

  3. #3
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    ça donne un redimensionnement un peu n'importe comment
    Ok mais normalement ça doit faire quoi ? Parce que pour le moment ça fait ce que tu as écrit.

    Y a bien un truc blizzard, c'est les JtextArea ajoutés à un Jpanel avant d'être ajouté à la frame, je ne suis pas sûr de l'utilité du JPanel.

    Sinon il n'est pas utile de tout préfixer avec this c'est implicite (et ça sera plus lisible).

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il n'y a rien d'étrange à la façon dont ils se redimensionnent. Tu les as mis dans le north et le south d'un BoderLayout, de fait il ne redimensionneront que sur un axe horizontal. Si tu les avais mis en east ou en west il ne se seraient redimensionnés que de façonn verticale. Et un composant placé dans le center d'un BorderLayout se redimensionne selon les deux axes.
    Rien de sorcier.
    Si tu veux quelque chose de plus fin, dirige toi vers un autre layout (type GridBagLayout, FormLayou, MigLayout & cie).

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/11/2011, 16h31
  2. Problème de redimensionnement automatique d'une listebox
    Par Kevin_18 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/07/2007, 23h33
  3. redimensionnement automatique excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/04/2006, 16h35
  4. [C#] [WinForms] Redimensionnement automatique d'une ListView
    Par Phenomenium dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/02/2005, 11h43
  5. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32

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