-
Architecture de JFrame
Bonjour à tous,
je développe actuellement une petite application et je suis confronté pour l'une des mes JFrame à un problème que je n'arrive pas à résoudre.
Il s'agit de l'architecture de ma JFrame.
Pour simplifier l'explication, j'ai fais un petit schéma.
En gros je voudrais arriver à ça :
http://imagesup.org/images11/1371801184-maquette.jpg
Le problème c'est que je ne sais pas comment m'y prendre.
Un seul panel ? Plusieurs panels ? Quels layouts ?
Je ne vous demande pas forcemment le code de la solution (mais ça ne me dérange pas :lol:) mais au moins quelques pistes pour commencer.
Note : je sais que le titre n'est pas très parlant mais j'ai pas trouvé mieux.
EDIT : euuuh JTextBox c'est plutôt JTextField en fait.
Merci d'avance !
-
Dans ta JFrame, tu peux mettre un GridLayout. Puis dans ton GridLayout tu aura d'autre GridLayout, ...
Un peu comme des poupés russes. Tu vois mon idée ?
C'est une idée comme une autre.
En espérant t'avoir aidé !:ccool:
-
D'accord donc je mets un gridlayout sur une colonne et 4 lignes qui contiendra
0: un grid layout pour la succession de boutons
1: un grid(6,12)
2:un label
3: un textfield
C'est possible ?
Et du coup, il est possible de faire en sorte que les dimensions des cases du premier grid soient différentes les unes des autres ? Je croyais que pour un gridlayout toutes les cases avaient obligatoirement la même dimension.
Je les fixe en dur de toute façon si c'est possible.
Je crois que je vais retourner voir la doc sur le gridlayout :lol:
Merci à toi.
-
En effet, toutes les cases d'un GridLayout ont la même taille.
C'est pourquoi je te conseillerais plutôt de choisir l'une des deux options suivantes:
1) Combiner des BorderLayout en utilisant les emplacements NORTH, CENTER et SOUTH. A priori, tu devrais pouvoir t'en sortir avec deux layouts (l'un dans l'autre). Ensuite, tu auras plusieurs manières de les imbriquer, c'est à toi de voir comment tu veux que les composants réagissent en cas de redimensionnement. En gros, tu mets ton composant principal dans le CENTER. C'est lui qui sera redimensionné, les autres seront à leur hauteur préférée.
2) Utiliser une vertical box. Dans ce cas, le redimensionnement ne touchera pas à la taille de tes composants, il se contentera d'augmenter les espaces entre eux.
Code:
Box.createVerticalBox()
-
Merci pour ta réponse.
Le première de tes solutions me plait bien.
Je vais tester ça ce soir et je vous tiendrai au courant.
Bonne journée !
EDIT : j'ai testé cette solution, c'est bien ce que j'essayais de faire.
Encore merci :mrgreen: