OVH Cloud OVH Cloud

Resize GridBagLayout

3 réponses
Avatar
Olivier Pierrier
Bonjour NG,

Java 1.4.1_02
W2K

J'ai un probleme pour lequel une solution doit exister, mais je ne l'ai
pas trouvée.

J'utilise dans un JDialog un GridBagLayout. Le rendu correspond à ce que
je souhaite. Le probleme est quand je reduit trop la taille du dialog,
l'affichage devient tres art moderne, tout est là mais on ne reconnait
plus rien.

Existe-t-il une solution standard à ce problème ?
J'ai penser à surcharger la méthode getMinimumSize(), quelqu'un a-t-il
une meilleure solution ? ( setResizable( false ) n'est pas une solution
).

Merci d'avance,

Olivier

3 réponses

Avatar
Nicolas Delsaux
Le 28.08 2003, Olivier Pierrier s'est levé(e) et s'est dit
"tiens, je vais écrire aux mecs de fr.comp.lang.java"

Bonjour NG,

Java 1.4.1_02
W2K

J'ai un probleme pour lequel une solution doit exister, mais je ne l'ai
pas trouvée.

J'utilise dans un JDialog un GridBagLayout. Le rendu correspond à ce que
je souhaite. Le probleme est quand je reduit trop la taille du dialog,
l'affichage devient tres art moderne, tout est là mais on ne reconnait
plus rien.

Existe-t-il une solution standard à ce problème ?
J'ai penser à surcharger la méthode getMinimumSize(), quelqu'un a-t-il
une meilleure solution ? ( setResizable( false ) n'est pas une solution
).


Tu peux même faire un setMinimumSize, ça t'évitera de surcharger la
méthode...

Merci d'avance,

Olivier




--
Nicolas Delsaux
"Celui qui sait en quoi consiste l'action humaine nourrit ce que sa
conscience saisit au moyen de ce qu'elle ne saisit pas."
Tchouang-Tseu

Avatar
Olivier Pierrier
Nicolas Delsaux wrote:

Le 28.08 2003, Olivier Pierrier s'est levé(e) et s'est dit
"tiens, je vais écrire aux mecs de fr.comp.lang.java"

J'utilise dans un JDialog un GridBagLayout. Le rendu correspond à ce que
je souhaite. Le probleme est quand je reduit trop la taille du dialog,
l'affichage devient tres art moderne, tout est là mais on ne reconnait
plus rien.

Existe-t-il une solution standard à ce problème ?
J'ai penser à surcharger la méthode getMinimumSize(), quelqu'un a-t-il
une meilleure solution ? ( setResizable( false ) n'est pas une solution
).


Tu peux même faire un setMinimumSize, ça t'évitera de surcharger la
méthode...


Voila une reponse qui merite reflection. Le probleme reste entier
puisque Java/Swing semble ne pas prendre en consideration les panel
contenus quand on reduit la taille d'un JFrame/JDialog.
Une Solution possible serait de mettre la minimum size du JFrame/Dialog
à la preferred size du panel contenu le plus englobant.
Des changements sont-ils prevus dans la version 1.5 pour corriger ce
genre d'erreur d'affichage ?

Pour le setMinimumSize( ... ), le probleme persiste qu au moment de la
construction du JDialog, la taille du JPanel interne n'est pas encore
connue, et attrapper l'evenement componentShown pour ça me semble etre
un travail inutile ( meme si apparemment incontournable ).

Merci pour ton indication, et de réagir à ce que je viens d'écrire

Olivier.


Avatar
Olivier Pierrier
Bonjour

Nicolas Delsaux wrote:

Le probleme reste entier
puisque Java/Swing semble ne pas prendre en consideration les panel
contenus quand on reduit la taille d'un JFrame/JDialog.


Je" crois que ça dépend de la manière dont tu les as inséré dans ta
fenêtre.

Une Solution possible serait de mettre la minimum size du
JFrame/Dialog à la preferred size du panel contenu le plus englobant.
Des changements sont-ils prevus dans la version 1.5 pour corriger ce
genre d'erreur d'affichage ?


Est-ce réellement une erreur d'affichage ? Qu'est-ce qui te permet de
penser que le Dialog ne doit pas se réduire plus petit que la taille des
composants qu'il contient, alors que ces composants pourraient eux-même
songer à se redimensionner ?
Je suis d'accord avec toi, mais un JcomboBox a tout de meme une taille

minimum : un editor + le bouton avec la fleche, ceci represente bien une
certaine taille, je n ai pas moyen de jouer sur cette taille.
Ce qui me permet de penser qu un Jdialog ne doit pas se reduire plus que
la taille de ces composants, c est que quand je cree une GUI sans
scrollpane, je m attends a ce que layouts et gestionnaires de gui
fassent leur travail, ce qui signifie pour moi quand on resize, verifier
que je peux tout afficher en fonction des minimum size de chaque
element. Peut etre que j en attends trop, mais c est un comportement que
je trouverais 'normal' s'il existait.


Pour le setMinimumSize( ... ), le probleme persiste qu au moment de la
construction du JDialog, la taille du JPanel interne n'est pas encore
connue, et attrapper l'evenement componentShown pour ça me semble etre
un travail inutile ( meme si apparemment incontournable ).


Alors comment connais-tu la taille de ce Panel ?
Il me semble que, dans la mesure où tu l'affiches, tu dois bien, durant
sa construction, pouvoir calculer sa taille (à la louche) et, à partir de
là, déduire celle du Dialog.
Pour en revenir a ce que j ai ecrit plus haut, ce devrait etre un

comportement par defaut de tout container de connaitre la taille minimum
du contenu. Mais apparemment, j'attends trop de swing.



Merci pour ton indication, et de réagir à ce que je viens d'écrire


C'est le genre de phrase qui me fait frémir.
Je sais :)


Olivier