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

AWT/Swing Java Discussion :

Réduire fenetre lorsqu'on clique sur bouton fermer


Sujet :

AWT/Swing Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2010
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Réduire fenetre lorsqu'on clique sur bouton fermer
    Bonjours chers développeurs,

    J'aimerai changer le comportement du bouton fermer (en haut de l'écrant à droite) d'une fenêtre swing,

    Mon objectif est de réduire cette fenêtre dans le système try (Zone de notification) , lorsqu'on clique sur le bouton fermer.

    Merci,

  2. #2
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    Salut !

    un truc de ce genre : dans le windowClosing de ta fenêtre, avec setExtendedState et ICONIFIED


    * NORMAL // Indicates that no state bits are set.
    * ICONIFIED
    * MAXIMIZED_HORIZ
    * MAXIMIZED_VERT
    * MAXIMIZED_BOTH

    ...je n'ai pas Java sous les yeux

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il te faut combiner deux choses:

    1) Dire à ta JFrame de juste se cacher lorsque l'on clique sur le bouton de fermeture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    2) Avoir ce qu'il faut dans le system tray, ce que tu ne pourras faire qu'en java 6: http://java.sun.com/docs/books/tutor...ystemtray.html. Puis faire en sorte qu'un clic sur l'icone du tray fasse un setVisible(true) sur ta JFrame.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2010
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Merci pour votre réponse,

    J'ai pensé a cette solution intermédiaire, ça marche certes, mais ça se voit pas clairement à l'utilisateur que l'application a été réduite à la Z.N, en fait ce qui montre que la fenêtre a été effectivement réduite, c'est ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE);
    mais cela, la réduit vers la barre des taches et non pas la Z.N, c'est pout ça que j'aimerais changer le comportement du bouton fermer, et pourvoir associer un code particulier a ce bouton,

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Je ne suis absolument pas d'accord, le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFrame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    Va faire en sorte que la JFrame n'apparaisse plus ni à l'écran, ni, mais la JFrame ne sera pas détruite comme si l'on avait fait un dispose.


    Bref essaie le code suivant, il correspond à ce que font les applications usuellement, (par exemple des lecteurs de musique genre Amarok ou Foobar, notepad++ & ainsi de suite).

    Evetuellement tu peux ajouter un tooltip ballon à la première minimisation.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    package swing.tests;
     
    import java.awt.AWTException;
    import java.awt.MenuItem;
    import java.awt.PopupMenu;
    import java.awt.SystemTray;
    import java.awt.TrayIcon;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.JFrame;
     
    public class TestFrameTray {
     
        private JFrame frame;
        private TrayIcon icon;
     
        public TestFrameTray() throws IOException, AWTException {
     
            PopupMenu popup = new PopupMenu();
            MenuItem defaultItem = new MenuItem("Exit");
            defaultItem.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent arg0) {
                    frame.dispose();
                    SystemTray.getSystemTray().remove(icon);
     
                }
            });
            popup.add(defaultItem);
            BufferedImage im = ImageIO.read(getClass().getResource("/icon-delete.gif"));
            SystemTray tray = SystemTray.getSystemTray();
            icon = new TrayIcon(im, "Tray", popup);
     
            icon.addMouseListener(new MouseListener() {
     
                @Override
                public void mouseReleased(MouseEvent e) {
                    // TODO Auto-generated method stub
     
                }
     
                @Override
                public void mousePressed(MouseEvent e) {
                    if (e.getButton() == MouseEvent.BUTTON1) {
                        frame.setVisible(!frame.isVisible());
                    }
     
                }
     
                @Override
                public void mouseExited(MouseEvent e) {
                    // TODO Auto-generated method stub
     
                }
     
                @Override
                public void mouseEntered(MouseEvent e) {
                    // TODO Auto-generated method stub
     
                }
     
                @Override
                public void mouseClicked(MouseEvent e) {
                    // TODO Auto-generated method stub
     
                }
            });
            // tray.
            frame = new JFrame();
            frame.setSize(400, 300);
            frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            tray.add(icon);
            frame.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    // TODO Auto-generated method stub
     
                    icon.displayMessage("MyApplication", "Your Java application has been minimized in the system tray, click on this icon to show it again", TrayIcon.MessageType.INFO);
     
                }
     
     
            });
            frame.setVisible(true);
        }
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                TestFrameTray t = new TestFrameTray();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (AWTException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     
    }
    Si c'est pas ce que tu recherches....

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2010
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    Merci bcp, c a peu pret ce que je cherche.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/09/2009, 18h46
  2. redirection lorsque je clique sur le bouton envoyer
    Par IVIedia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/07/2009, 13h56
  3. Faire des liens lorsqu'on clique sur un bouton
    Par Antoinejdu44 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 14/11/2008, 20h06
  4. Nouvelle fenetre aprés clique sur bouton
    Par Bikra dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 25/03/2008, 13h45
  5. Réponses: 4
    Dernier message: 05/01/2008, 23h39

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