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 :

[SWING]Dimensions d'une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut [SWING]Dimensions d'une JFrame
    Bonjour, je voudrais pouvoir fixer moi-même les dimensions de ma JFrame.

    Alors pour cela j'ai pensé à setSize, setPreferedSize, setMinimumSize, setMaximumSize...

    Je me confronte à plusieurs problèmes:
    1. Quand je donne une taille minimum avec setMinimumSize, je peux quand même redimensionner ma fenêtre à volonté malgré cette restriction
    2. Je voudrais pouvoir bloquer la taille en horizontale mais pas celle en verticale (à laquelle je voudrais pouvoir donner une taille minimum)
    Comment faire ?
    Merci.

  2. #2
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    avant mustang tu doit utiliser ComponentListener et implementer la methode componentResized pour limiter les size que tu veut.

    avec mustang setMinimumSize fonctionne tres bien :-)
    a ta place je migre a mustang

  3. #3
    Membre chevronné Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Par défaut
    utilise aussi un setResizable(false)

  4. #4
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    lionrouge> Je voudrais pouvoir bloquer la taille en horizontale mais pas celle en verticale

    NeptuS>utilise aussi un setResizable(false)

    si tu fait un setResizable(false) tu peut plus changer la taille ni horizontal ni vertial

  5. #5
    Membre chevronné Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Par défaut
    si, mais pas à la main, juste par programmation.

  6. #6
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    > si, mais pas à la main, juste par programmation.

    LOL

    par programation tu peut toujour tout faire

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    ... et sans migrer à Mustang (en restant à la version 5) ?
    Parce que je ne pense pas que ceux qui vont utiliser mon application sont passés à Mustang... malheureusement

    En effet, je ne parlais pas du côté programmeur mais du côté utilisateur... milles escuses pour cette imprécision.

  8. #8
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    ComponentListener ca marche pas?
    quelque chose comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class MyFrame extends JFrame implements ComponentListener  {
        ...
        public void componentResized(ComponentEvent e) {
            // check size!
        }
    }

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        public void componentResized(ComponentEvent e) {
            if(getSize().width != Principal.dimensionFenetre.width)
                setSize(new Dimension(Principal.dimensionFenetre.width, getSize().height));
            if(getSize().height < Principal.dimensionFenetre.height)
                setSize(Principal.dimensionFenetre);
        }
    avec Principal.dimensionFenetre une dimension statique d'une classe Principal...

    Toutes les redimensions marchent donc en fait rien ne marche...

  10. #10
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu as bien ajouté le listener à ta fenêtre ?

    Si oui, mets un System.out.println("Resize") dans la méthode pour voir si au moins il entre dedans.

  11. #11
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Pour le passage à Mustang, si ça t'arrangerait de changer de JDK mais que tu ne veux pas obliger les utilisateurs à installer le JRE 1.5, tu peux leur fournir le JRE à utiliser avec ton appli.
    Ainsi, le JRE installé sur leur machine restera celui qu'ils ont actuellement, mais ton appli utilisera le JRE 1.5.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    Alors:
    1. En effet je n'ai aucun "resize" qui apparaît
    2. Alors en fait j'ai une classe "Principal" qui contient le main... dans ce main, j'appelle Principal(); et dans Principal() je crée un objet Fenetre... défnit comme suit...

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    import java.awt.Dimension;
    import java.awt.event.ComponentEvent;
    import java.awt.event.ComponentListener;
     
    import javax.swing.JFrame;
     
    public class Fenetre extends JFrame implements ComponentListener{
     
        private static final long serialVersionUID = 1L;
     
        public Fenetre(){}
     
        public void componentResized(ComponentEvent e) {
            if(getSize().width != Principal.dimensionFenetre.width)
                setSize(new Dimension(Principal.dimensionFenetre.width, getSize().height));
            if(getSize().height < Principal.dimensionFenetre.height)
                setSize(Principal.dimensionFenetre);
            System.out.println("resize");
        }
     
        public void componentMoved(ComponentEvent e) {}
        public void componentShown(ComponentEvent e) {}
        public void componentHidden(ComponentEvent e) {}
     
    }
    et ça ne fait pas ce qui est escompté...

  13. #13
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    C'est normal que ca ne fasse pas ce que tu veule, tu n'as pas ajouté le listener à ta fenêtre... Le fait d'implémenter le listener, permet seulement à la classe de pouvoir écouter un autre objet.

    Donc dans ton cas, il faut que tu fassses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Fenetre(){
    this.addComponentListener(this);
    }

  14. #14
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    ca semblait tellement evident que je l'ai pas noter.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    en effet c'est l'évidence même que ça m'a échappé... ... des fois on est étourdit... moi-même en était persuadé...
    Par contre comme je le soupsonnais, l'utilisateur peut en effet redimensionner et à travers ce nouveau code (encore merci au passage) je la remet comme il faut...

    Y a-t-il un moyen pour empêcher ce désagremment (très léger du reste...) ?

  16. #16
    Membre émérite
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Par défaut
    ben c'est qu'est ce que je dit
    tu peut pas eviter ca sans passer a mustang :-)

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    oui bon tout est ok, ça me convient parfaitement... Merci à tous et toutes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SWING] Comment redessiner la barre de titre d'une JFrame?
    Par rprom1 dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 21/06/2006, 17h18
  2. [resolulu][SWING] action avant de fermer une JFrame
    Par berg dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 17/06/2006, 23h15
  3. [SWING] Problème de taille logo d'une JFrame
    Par rprom1 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 05/05/2006, 16h51
  4. [SWING] 1.4 Mettre une JFrame always on top
    Par PoPeio dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 29/03/2006, 16h13
  5. [SWING][JFrame] mettre un border dans une JFrame
    Par PoPeio dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 20/03/2006, 16h01

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