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 :

taille d'une JFrame pdt resize


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut taille d'une JFrame pdt resize
    Bonjour

    Je voudrais connaitre la taille d'une JFrame pendant le resize (et non pas après)... je ne peux donc pas utiliser componentResized

    Connaissez-vous un évenement style "onResize" ?

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 11
    Par défaut
    bonjour

    As tu essayé un WindowStateListener

    http://java.sun.com/j2se/1.5.0/docs/...eListener.html

    tu implémente ensuite ton code dans le corps de la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	windowStateChanged(WindowEvent e){
                //....
            }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    Oui, j'ai essayé et ça ne fonctionne pas... Je suis vraiment embêté car je n'ai pas beaucoup d'idées...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Bonjour,

    Peux-tu préciser un peu plus ce que tu entends par "taille d'une JFrame pendant le resize" ?

    Nicolas

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 11
    Par défaut
    montre nous ton code aussi, ça sera plus facile à comprendre.

    vas faire un tour du coté des tutoriaux du site et de ceux de Sun pour les idées :p.


    tu as implémenter ton WindowStateListener, mais as tu ajouter le listener à la liste de "diffusion" de ta fenêtre?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    maJframeAMoi.addWindowStateListener( new WindowStateListener() {
            public void windowStateChanged(WindowEvent e){
                System.out.println("taille: "+maJframeAmoi.getSize());
            }
    });

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    Prenons un exemple: afficher la taille de la fenetre dans un JLabel (ou comme titre de la fenetre, peu importe) pendant le resize...

    Il y a bien le paint() qui me vient à l'esprit mais j'aurais voulu qqch de plus précis... Et en plus j'ai l'impression que le paint() est appelé uniquement quand j'agrandis la fênetre...

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Le bout de code ci-dessous pour afficher après le resize.
    Pour afficher pendant, je ne vois pas pour l'instant avec les listeners.
    Tu peux toujours créer un Thread qui vérifie toutes les x millisecondes la taille de la fenêtre, et agit en cas de changement.

    Nicolas

    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
    import java.awt.event.ComponentAdapter;
    import java.awt.event.ComponentEvent;
    import javax.swing.JFrame;
     
    public class TestReSize {
     
        public static void main(String[] args) {
     
            final JFrame frame = new JFrame();
            frame.setSize(300,300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            frame.addComponentListener(new ComponentAdapter() {
                public void componentResized(ComponentEvent e){
                    System.out.println("nouvelle taille : "+frame.getSize());
                }
            });
            frame.setVisible(true);
     
        }
    }

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    Merci, mais là est le problème, je veux bien afficher pendant le resize

    Je vais continuer à chercher...

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Pouvons-nous te demander dans quel but tu cherches la taille de la JFrame pendant le resize ?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    C'est une demande de mon client, c'est dans le cahier de charges et bêtement j'ai cru que ça allait être très facile à faire...

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Par défaut
    Bonjour,

    En y réfléchissant, je me dis qu'il existe un problème de fond derrière le suivi de reSize(). Quand l'utilisateur modifie la taille de la fenêtre, le mouvement est "continu". Le logiciel ne peut pas suivre et doit donc définir une fréquence d'acquisition des informations.

    D'où les deux exemple ci-dessous, l'un avec minuteur (Timer), l'autre avec un Thread, tous deux cadencés à 400 millisecondes.

    1. Exemple avec Timer

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    // suivi de la taille d'une JFrame pendant resize
    // http://www.developpez.net/forums/showthread.php?p=1295394
    // Nicolas_75, 26 août 2006
    // exemple avec Timer
    // appeler le fichier Exemple057_ReSizeFollowUpWithTimer.java
     
    import java.awt.Dimension;
    import java.util.Timer;
    import java.util.TimerTask;
    import javax.swing.JFrame;
     
    public class Exemple057_ReSizeFollowUpWithTimer extends JFrame {
     
        Dimension oldDimension;
     
        Dimension currentDimension = this.getSize();
     
        public Exemple057_ReSizeFollowUpWithTimer() {
            this.setSize(300,300);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Timer minuteur = new Timer();
            TimerTask tache = new TimerTask() { // classe interne :
                public void run() {
                    oldDimension = currentDimension;
                    currentDimension = Exemple057_ReSizeFollowUpWithTimer.this.getSize();
                    if (!currentDimension.equals(oldDimension)) {
                        System.out.println("Nouvelle taille : "+currentDimension);
                    }
                }
            };
            minuteur.schedule(tache, 0, 400); // toutes les 400 millisecondes
        }
     
        public static void main(String[] args) {
            Exemple057_ReSizeFollowUpWithTimer myFrame = new Exemple057_ReSizeFollowUpWithTimer();
            myFrame.setVisible(true);
        }
    }
    2. Exemple avec Thread

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    // suivi de la taille d'une JFrame pendant resize
    // http://www.developpez.net/forums/showthread.php?p=1295394
    // Nicolas_75, 26 août 2006
    // exemple avec Thread
    // appeler le fichier Exemple058_ReSizeFollowUpWithThread.java
     
    import java.awt.Dimension;
    import javax.swing.JFrame;
     
    public class Exemple058_ReSizeFollowUpWithThread extends JFrame implements Runnable {
     
        Dimension oldDimension;
     
        Dimension currentDimension = this.getSize();
     
        public Exemple058_ReSizeFollowUpWithThread()  {
            this.setSize(300,300);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            new Thread(this).start();
        }
     
        public void run() {
            while (true) {
                oldDimension = currentDimension;
                currentDimension = Exemple058_ReSizeFollowUpWithThread.this.getSize();
                if (!currentDimension.equals(oldDimension)) {
                    System.out.println("Nouvelle taille : "+currentDimension);
                }
                try {
                    Thread.sleep(400); // 400 millisecondes
                } catch (Exception e) { e.printStackTrace(); }
            }
        }
     
        public static void main(String[] args) {
            Exemple058_ReSizeFollowUpWithThread myFrame = new Exemple058_ReSizeFollowUpWithThread();
            myFrame.setVisible(true);
        }
    }
    Nicolas

Discussions similaires

  1. Modifier la taille d'une JFrame
    Par afrikha dans le forum NetBeans
    Réponses: 3
    Dernier message: 17/02/2011, 01h36
  2. Fixer une taille minimale à une JFrame
    Par piotrr dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/04/2008, 15h48
  3. Taille d'une JFrame par rapport à sa zone client?
    Par Médinoc dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 04/11/2006, 22h13
  4. Récupérer la taille d'une JFrame
    Par ®om dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 24/08/2006, 23h02
  5. 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

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