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 :

AWT - Conception GridBagLayout :/


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 23
    Par défaut AWT - Conception GridBagLayout :/
    Bonsoir à tous,

    C'est la première fois de ma vie que je réalise une GUI et qui plus est en java et je dois dire que c'est pas de la tarte.
    J'ai d'habitude pas trop de peine à m'en sortir en lisant la doc java mais la je sèche complètement et ce malgré les tutoriaux que j'ai pu lire.

    Voila en gros un schéma de ce que j'essaie de faire:
    http://images.anathas.com/gridbaglayout.png
    Explication: en couleur les différents Components que je voudrais placer et leur noms. Les chiffres en noirs sont les coordonnées (gridx, gridy de GridBagConstraints) et ceux placés après un slash sont les tailles (gridwidth, gridheight).

    Par dessus en rouge c'est la grille, et les traits verts indiquent les composants qui utilisent une taille en REMAINDER.

    Il me semble que ma conception est correcte en tout cas sur le "papier".

    Maintenant voila ce que j'obtiens:
    http://images.anathas.com/gridbaglayout2.png
    Pas très concluant :/

    Voila le constructeur de ma Frame (enfin, de la classe qui en hérite):
    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
    	public ClientGUI () {		
    		// Frame propreties
    		setLocation((toolkit.getScreenSize().width-800)/2, (toolkit.getScreenSize().height-600)/2); // Center of the screen
    		setSize(800, 600);
    		setVisible(true);
     
    		// Layout
    		setLayout(new GridBagLayout());
     
    		// Listeners
    		listener = new ClientListener(this);
    		addWindowListener(listener);
     
    		// Start creating Components
    		GridBagConstraints g = new GridBagConstraints();
    		Component temp;
     
    		// 1: List
    		temp = new List();
    		temp.setSize(200, 200);
    		g.gridx = 0; // Position
    		g.gridy = 0;
    		g.gridwidth = 2; // Size
    		g.gridheight = 6;
    		g.weightx = GridBagConstraints.REMAINDER;
    		g.weighty = 0.5;
    		g.anchor = GridBagConstraints.CENTER;
    		g.fill = GridBagConstraints.BOTH;
    		g.insets = new Insets(2,2,2,2);
    		g.ipadx = 0;
    		g.ipady = 0;
    		add(temp,g);
     
    		// 2-7: Menus
    		temp = new BoutonMenu("fichiers/connect.png");
    		g.gridx = 2;
    		g.gridy = 0;
    		g.gridwidth = 1;
    		g.gridheight = 1;
    		g.weightx = 0;
    		g.weighty = 0;
    		add(temp,g);
    		temp = new BoutonMenu("fichiers/afficherserv.png");
    		g.gridy = 1;
    		add(temp,g);
    		temp = new BoutonMenu("fichiers/afficherclients.png");
    		g.gridy = 2;
    		add(temp,g);
    		temp = new BoutonMenu("fichiers/download.png");
    		g.gridy = 3;
    		add(temp,g);
    		temp = new BoutonMenu("fichiers/downloadp.png");
    		g.gridy = 4;
    		add(temp,g);
    		temp = new BoutonMenu("fichiers/downloade.png");
    		g.gridy = 5;
    		add(temp,g);
     
    		// 8: L'entrée texte principale
    		entree = new TextField();
    		entree.setSize(150,15);
    		entree.addKeyListener(listener);
    		g.gridx = 0;
    		g.gridy = 6;
    		g.weightx = GridBagConstraints.REMAINDER;
    		g.weighty = 0.5;
    		add(entree,g);
     
    		// 9: Textarea qui affiche les messages
    		messages = new TextArea("Bienvenue dans FredClient !", 55, 6, TextArea.SCROLLBARS_VERTICAL_ONLY);
    		messages.setEditable(false);
    		messages.setSize(200,185);
    		g.gridy = 7;
    		g.weighty = GridBagConstraints.REMAINDER;
    		add(messages,g);
     
    		// Affichage modifiable
    		temp = new Panel();
    		temp.setSize(72,200);
    		g.gridx = 1;
    		g.gridy = 6;
    		g.gridwidth = 2;
    		g.gridheight = 2;
    		g.weightx = 0.5;
    		add(temp,g);
     
    		validate();
    	}
    Note: haha comme d'hab j'ai moitié commenté en francais moitié en anglais

    Ca fait 48h que je retourne le problème dans tous les sens, j'ai essayé de reconcevoir mon truc 2 fois à partir de 0 et j'arrive jamais beaucoup plus loin que ca.
    J'arrive pas à comprendre ce que je fais faux malgré une lecture dans tous les sens de la doc. J'espère donc que vous pourrez m'eclairer.

    Merci d'avance à ceux qui se pencheront sur mon problème

  2. #2
    Membre éclairé Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Par défaut
    REMAINDER est utile pour gridwith ou gridheight, pas pour weightx ou weighty !
    Dans un premier temps, ne cherche pas à utiliser REMAINDER et RELATIVE et affecte une valeur différente de 0 uniquement pour le weightx et weighty de ta liste.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 23
    Par défaut
    Oh ok merci ^^'

    J'avais en effet mal capté le sens de REMAINDER. Quand j'ai corrigé ca j'ai en effet eu des résultats un peu plus probants, et la j'ai quasiment terminé après avoir remarqué que ma texarea était demensionnée à 55 lignes 6 colonnes au lieu de l'inverse xD

    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. pas voir boutons (AWT / GridBagLayout)
    Par temoanatini dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/06/2009, 20h45
  2. [awt] Ajouter un Insets sur un GridBagLayout
    Par dib258 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/01/2006, 23h24
  3. [Concept] Métadatas ?
    Par melinda dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 10/11/2004, 11h56
  4. [Concept] Réplication
    Par melinda dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 31/03/2003, 17h29
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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