[Layout] Redimensionner en gardant les proportions [Résolu]

Froxil 8 Messages postés vendredi 24 février 2012Date d'inscription 15 mars 2012 Dernière intervention - 24 févr. 2012 à 14:13 - Dernière réponse : cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention
- 28 févr. 2012 à 14:36
Bonjour,

Ma question est simple, existe-t-il un Layout (ou des paramètres à entrer dans un Layout) permettant de placer un élément dont les proportions seront fixes mais qui devra prendre le maximum de place disponible dans son contenant.

Je m'explique :

Mes composant :
[list]
[*] Un JPanel principal ayant un Layout BorderLayout
[*] Un JPanel "d'options" à droite (BorderLayout.EAST)
[*] Un JPanel "contenu" à gauche (BorderLayout.CENTER) qu'on nommera pCont
[*] Un JPanel "cible" placé dans pCont, ayant des proportions fixes (pas forcément carré, mais pouvant être rectangulaire), dont le Layout est GridLayout, qu'on nommera pCible
/list

Lorsque je redimensionne la fenêtre, pCont est aussi redimensionné et ses proportions changent (jusque là, tout est normal). Seulement, je voudrais que pCible prenne le maximum d'espace possible dans pCont, tout en y restant centré.

Voici ce que cela devrait donné en pseudo-image couleur :

Jpanel d'origine :
#####pCont########
####pCible########
##################
##################
##################
##################

Redimensionnement vertical :
#####pCont########
##################
##################
####pCible########
##################
##################
##################
##################
##################
##################

Redimensionnement horizontal :
#########pCont############
########pCible############
##########################
##########################
##########################
##########################

Redimensionnement horizontal ET vertical :
########pCont###########
#######pCible###########
########################
########################
########################
########################
########################
########################

J'ai réussi à bidouiller un peu ceci en mettant le Layout de pCont à GridBagLayout et en centrant ainsi facilement pCible, puis, grâce à un ComponentAdapter, je modifie les dimensions de pCible tout en faisant attention à bien garder les dimensions, mais je trouve que le rendu n'est pas génial.

Existe-t'il un Layout (ou une combinaison de Layout) qui permette de faire ceci ?

Merci d'avance pour vos réponse !
Afficher la suite 

4 réponses

Répondre au sujet
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 24 févr. 2012 à 14:36
+3
Utile
Bonjour,

C'est vrai pour l'explication : très astucieux les dessins.

Tu as le BoxLayout qui te permettra de le faire : http://docs.oracle.com/javase/tutorial/uiswing/layout/box.html
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Julien39
Froxil 8 Messages postés vendredi 24 février 2012Date d'inscription 15 mars 2012 Dernière intervention - 28 févr. 2012 à 14:29
+3
Utile
Merci beaucoup de vos réponse !

Au final, je n'aurai utilisé aucune de vos deux réponse... Mais, en lisant le tuto du BoxLayout, j'ai trouvé comment faire pour réalisé mes desiderata : au lieu de jouer sur les dimensions lors du redimensionnement, je joue sur les bordures (avec setBorder avec un écouteur étendant ComponentAdapter), et le résultat est (semble ?) parfait !

Désolé de n'avoir utilisé ni FormLayout ni BoxLayout, mais (de retour de week end, d'où ma réponse tardive), je n'ai pas réussi à fixer les proportions (par exemple : carré) du JPanel [color = green]pCible/color... Cependant, je m'en veux de ne pas avoir pensé à jouer sur les bordures plus tôt, c'était tout bête !

Bon, certes, ça reste plus ou moins que du bricolage, mais le résultat est ce que j'attendais, donc ça me convient ! Encore merci...

Sinon, concernant vos éloges () concernant mon explication, merci beaucoup ! Cependant, il me semble normal d'expliquer le plus clairement possible ce que l'on souhaite afin d'avoir une réponse la plus pertinente possible !

Encore merci !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Froxil
cormandyr 600 Messages postés samedi 20 mai 2006Date d'inscription 8 juillet 2016 Dernière intervention - 24 févr. 2012 à 14:20
0
Utile
Salut ^^

tout d'abord, très belle explication, sincèrement...

Ensuite, je te conseille la librairie formscontenant le layout FormLayout... Elle devrait tout à fait répondre à tes attentes...
Commenter la réponse de cormandyr
cs_Julien39 6449 Messages postés mardi 8 mars 2005Date d'inscription 15 mars 2018 Dernière intervention - 28 févr. 2012 à 14:36
0
Utile
L'important est que tu ais réussi à trouver une solution qui te convienne.

N'oublie pas d'accepter ta propre réponse pour fermer le sujet.

a+
Commenter la réponse de cs_Julien39

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.