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 :

[JFrame][JRootPane?][d'autres?] Taille minimale d'une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut [JFrame][JRootPane?][d'autres?] Taille minimale d'une JFrame
    Bonjour, je cherche à bloquer la taille de la fenêtre de mon application à 800x600 (minimum, pas maxi!) j'ai essayé pas mal de setMinimumSize, mais rien de concluant jusque là.
    Que faire?
    Merki!

  2. #2
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Il faut utiliser Java 1.6.
    Romain Guy
    Android - Mon livre - Mon blog

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    T'es sûr? parce que j'avais vu un exemple avec un bouton dans une fenêtre, et il était impossible de descendre la taille de la fenêtre sous celle du bouton.

  4. #4
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Ca doit être possible de se débrouiller avec un ComponentListener et sa méthode componentResized.

    Essaie de faire un truc de ce style :

    Affecte une taille minimum à ta JFrame avec setMinimumSize.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taJFrame.setMinimumSize(new Dimension(800,600));
    Et ajoute-lui un écouteur de type ComponentListener de cette manière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    taJFrame.addComponentListener(new ComponentAdapter(){
               public void componentResized(ComponentEvent e){
                            Component cp =e.getComponent();
                            if (cp.getSize().width<cp.getMinimumSize().width){
                                          cp.setSize(cp.getMinimumSize().width, cp.getSize().height);
                            }
                            if (cp.getSize().height<cp.getMinimumSize().height){
                                          cp.setSize(cp.getSize().width, cp.getMinimumSize().height);
                            } 
               }
    });
    Ca devrait redimensionner ta fenêtre à la taille voulu automatiquement à la taille voulue.

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Pour l'instant je n'arrive pas, mais j'ai retrouvé l'exemple de Sun :
    http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#FrameDemo2
    La fenêtre principale a une taille minimale, mais j'arrive pas à savoir comment ils ont fait.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    J'ai une piste, dans le code FrameDemo2.java, le simple fait de mettre "JFrame.setDefaultLookAndFeelDecorated(true);" en commentaire ne permet plus de bloquer la taille de la fenêtre. Alors va savoir pourquoi...
    Y'a des choses dans java qui sont quand même grave bizarre...

  7. #7
    Membre chevronné
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Points : 2 011
    Points
    2 011
    Par défaut
    Et sinon tu as essayer le code que j'ai mis?

    -"Tout ça me paraît très mal organisé. Je veux déposer une réclamation. Je paye mes impôts, après tout!"
    -"JE SUIS LA MORT, PAS LES IMPÔTS! MOI, JE N'ARRIVE QU'UNE FOIS".

    Pieds d'argile (1996), Terry Pratchett 1948 - 2015
    (trad. Patrick Couton)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Oui j'ai essayé mais seul la ligne que j'ai cité précédemment fonctionne.
    Je m'en vais faire un tour dans cette méthode, et je reviens...

    Edit : d'ailleurs, il suffit de lancer FrameDemo2, et de tester les fenêtres "LookAndFeelDecorated", et "WindowL&FDecorated" : dans le premier cas le bouton ne disparaît jamais, dans le deuxième cas il peut être masqué en grande partie.

  9. #9
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    J'ai une piste, dans le code FrameDemo2.java, le simple fait de mettre "JFrame.setDefaultLookAndFeelDecorated(true);" en commentaire ne permet plus de bloquer la taille de la fenêtre. Alors va savoir pourquoi...
    Y'a des choses dans java qui sont quand même grave bizarre...
    FrameDemo2 peut bloquer la taille de la fenetre car elle utilise justement setDefaultLookAndFeelDecorated(true) qui demande au look and feel de s'occuper du dessin des bordures de la fenetre. En gros, la bordure de la fenetre est dessine DANS la JFrame et non pas dehors. De fait le look and feel doit LUI-MEME implementer la gestion du deplacement de la fenetre mais aussi de son redimensionnement.

    En pratique cela permet de bloquer tres efficacement la taille de la fenetre puisqu'il suffit d'ignorer les evenements souris si la fenetre a deja une certaine taille. On ne peut faire cela avec des fenetres normales car on recoit un evenement componentResized() APRES que la fenetre a ete retrecie par l'environnemen (i.e. Windows par exemple).
    Romain Guy
    Android - Mon livre - Mon blog

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    ok merci pour le truc, je connais pas trop bien la gestion des Look&Feel. En ce qui concerne la version 1.6 de java, je préfère attendre la finale.
    Edit : en ce qui concerne le scrutage de l'évènement, en fait lors d'un redimensionnement de fenêtre, il y aura un doLayout() effectué après, donc ça marche mais c'est assez crade.

Discussions similaires

  1. Debutant : Imposer la taille minimale d'une JFrame
    Par canigu dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 01/01/2006, 22h11
  2. Fixer une taille minimale d une fenetre
    Par anouar dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 27/10/2005, 00h53
  3. [AWT] JFrame - Mettre une taille minimum sur une Jframe
    Par rabobsky dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 27/07/2005, 18h20
  4. Taille minimum pour une JFrame ou une JInternalFrame
    Par sixkiller dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 30/11/2004, 15h26
  5. [MFC]Taille minimale d'une fenetre
    Par fr66 dans le forum MFC
    Réponses: 5
    Dernier message: 14/06/2004, 11h44

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