Quelqu'un pourrait me dire comment je pourrais empecher l'utilisateur de minimiser une JFrame au dessous d'une certaine taille limite?
Quelqu'un pourrait me dire comment je pourrais empecher l'utilisateur de minimiser une JFrame au dessous d'une certaine taille limite?
Utilise Java 1.6 ou ajoute un ecouteur d'evenement de type ComponentListener (si je me souviens bien) pour faire un setSize() des que la fenetre est redimensionnee sous une certaine taille.
Bon je l'ai fait,c'est pas ce que je voulais mais ca m'evite au moin d'avoir des trucs qui s'affiche n'importe comment au dessous d'une certaine taille donc merci.
Si quelqu'un a une solution plus longue ou plus compliquée mais dont le resultat serait plus proche de ce que j'attends à me proposer ca m'interesse...
Je sais plus très bien mais :
Si tu redéfinies la méthode getSize() dans laquelle tu mets que :
si inférieur à ta dimension minimal
return ta dimension minimal
voire si pas besoin de rédéfinir aussi setSize() mais je crois pas
Enfin bon si tu veux redéfinir les méthodes il faut bien sûr utiliser une classe de type JFrame
Tu as juste à créer une classe qui étendant ves JFrame et rédéfinir getSize().
En tout cas practiquement sûr que c'est un truc du style... (fatigue de noelm'empeche de trop réflechir)
vois aussi si il ya pas de getMinimumSize() pour une fenetre dans quel cas c'est elle qu'il faut redefinir ...
Non ça ne fonctionne pas en java 1.5, ni setMinimumSize().Envoyé par fremsoi
Du coup il faut définir getSize() et lui attribuer un minimum comme dis précedemmentEnvoyé par herve91
Dans le cas où l'on redimensionne avec les bordures de la JFrame, il n'y a pas d'appel a setSize() ni a getSize().
Donc les redéfinir ne sert à rien.
Normalement il faudrait utiliser un ComponentListener. Le problème est qu'il redimensionne la fenetre et seulement après il execute les actions que tu as redéfini. Niveau esthétique c'est pas le top car on voit le double redimensionnement.
Il faudrai pouvoir capter le redimensionnement en temps réel mais je ne sais pas comment on peut faire (excepter un timer qui exécuterait une vérification toutes les 10ms par exemple...).
Donc si qqun connait le moyen de connaitre la taille de la fenêtre lors du redimensionnement avec les bordures, je suis réellement intéréssé.
Une autre question :
J'avais essayé de permettre le redimensionnement uniquement lorsque la souris est dans le coin inférieur gauche par exemple. J'ai réussi ce qui permet de faire apel à la méthode setSize seulement aprés la vérification de la taille minimum.
Le problème est que je ne sais pas comment raffraichir la fenetre pour que les composants utilisent toutes la place.
J'ai essayé avec la methode repaint et update mais aucune des deux ne replace les composants.
Dans ma fenetre je n'ai qu'un conteneur qui contient un JPanel. Comment fairre pour que tout les composants soit bien en place ?
Edit : En rajoutant le ComponentListener, cela a résolu le probleme de redimensionnement/placement des composants.
Mais j'ai toujours l'effet de clipping assez génant. Comment faire en sorte qu'il disparaisse ?
Partager