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

Agents de placement/Fenêtres Java Discussion :

[AWT] JFrame - Mettre une taille minimum sur une Jframe


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut [AWT] JFrame - Mettre une taille minimum sur une Jframe
    Bonjour,

    je voudrais savoir comment on fait pour avoir une taille minimum sur une JFrame : L'utilisateur peut modifier la taille de l'application mais quand ca atteind la plus petite taille possible (défini par le codeur) elle ne se réduise plus.

    Merci par avance!!!

    PS : le setMinimumSize ne marche pas...
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    bonjour,
    il n'existe pas de méthode simple pour fixer une taille minimale à une JFrame. L'astuce est d'ajouter un ComponentListener (ou ComponentAdapter) à la JFrame, et de définir la méthode componentResized(). Ainsi, dès que la taille devient inférieure à minimumSize, la JFrame est redimensionnée.
    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
    public void componentResized(ComponentEvent e) {
          Dimension size = getSize();
          Dimension minimumSize = getMinimumSize();
     
          boolean resize = false;
          if (size.width < minimumSize.width) {
            size.width = minimumSize.width;
            resize = true;
          }
          if (size.height < minimumSize.height) {
            size.height = minimumSize.height;
            resize = true;
          }
          if (resize) {
            setSize(size);
          }
        }
      }

  3. #3
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup pour ta réponse!

    Je suis sur que c'est ca mais j'ai du mal à la mettre en oeuvre tu peux me donner un coup de main?

    En fait, je ne sais pas si ca vient de moi ou c'est parceque je n'arrive pas à trouver un bon tuto mais entre le addContentListener et le ContentListener... et la facon de les coder je suis perdu...

    Surtout que dans mon cas j'ai plus l'impression que j'ai besoin d'un ComponentListener plutot que d'un ContentListener.

    Je te remercie beaucoup de ton coup de main herve91!
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  4. #4
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    ContentListener n'existe pas, c'est bien ComponentListener. Voir la méthode addComponentListener de la classe Component.

  5. #5
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    est ce que c´est possible que j´ai des problemes a mettre ca en place parce que j´utilise linux... car le setSize semble avoir des problemes... et je ne comprends pas pourquoi!
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Quel genre de problèmes ?

  7. #7
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    quand je met le setsize directement sans condition dans la fonction onresize, la taille redéfinie au démarrage de l application... mais ensuite si je change la taille des fois elle revient a la taille initiale(celle definie par le onresize)... des fois le prog semble bloquer...

    et si je met dans une condition le resize ca marche encore moins bien... et encore pire si je met la taille de l'appli comme attribut de la classe que je definit (dépends des autres paramètres)...

    ca fait je ne sais pas combien de jours que je me prends la tete la dessus... j'ai bien l'impression que c'est impossible (c'est peut etre pour ca que les progs sous linux n'ont pas de taille minimale??) :
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  8. #8
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Si par hasard tu avais un peu de code, ça aiderait.. je ne sais pas ce que font tes méthodes onresize, resize.

  9. #9
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    Voici mon code
    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
     
        public void componentHidden (ComponentEvent e) {}
        public void componentMoved  (ComponentEvent e) {}
        public void componentShown  (ComponentEvent e) {}
     
        int minimumHeight = 400;// this is the minimum size of the application
        public void componentResized(ComponentEvent e) 
        {
    	    Dimension size = getSize();
    	    if ( size.height < minimumHeight) 
    	    {
    	    	setSize(size.width, minimumHeight);
    	    	//repaint();
    	    }
        }
    en fait le redimensionnement ne concerne que la hauteur...
    Merci du coup de main
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  10. #10
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Ca me paraît correct. Tu ajoutes bien une instance de cette classe via la méthode addComponentListener() de la JFrame de l'application ?

  11. #11
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    oui je le fais bien... quand je lance le script sans la conditionnelle if... ca donne quelque chose... ca réagit...

    PS: J'avais (comme tu as pu le remarquer) ajouter un repaint()... que j'ai laissé en commentaire.
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

  12. #12
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Je ne vois pas ...
    (Le repaint ne sert à rien, il sera appelé si nécessaire)

  13. #13
    Membre régulier Avatar de rabobsky
    Inscrit en
    Novembre 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 123
    Points : 78
    Points
    78
    Par défaut
    c'est bien ce que je me disais... c'est bien la peine de se prendre la tete... quand le prob vient de l'OS
    "On ne va jamais aussi loin que lorsqu’on ne sait pas où l’on va." - Christophe Colomb

Discussions similaires

  1. [AC-2010] Simuler un clic sur une page web sur une image javascript
    Par alex en droit dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/04/2012, 13h22
  2. Imprimer sur une page web sur une imprimante spécifique
    Par bleuerouge dans le forum Windows Forms
    Réponses: 0
    Dernier message: 07/12/2009, 09h51
  3. Pb sur une requête DELETE sur une chaine
    Par astrolane dans le forum Sybase
    Réponses: 4
    Dernier message: 16/02/2009, 09h11
  4. Réponses: 3
    Dernier message: 25/10/2007, 11h47
  5. Réponses: 2
    Dernier message: 06/04/2006, 11h57

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