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

Java Discussion :

reduire les fenetres sous java


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 141
    Par défaut reduire les fenetres sous java
    Bonjour !
    je voudrais savoir s'il existe un code java qui permet de reduire toutes les fenetres deja ouvertes.
    j'explique :
    j'ai une fenetre de login,et je voudrai que je lorsque je lance cette fenetre,toutes les fenetre deja ouvertes (par l'utilisateur)soient reduites.
    j'ai deja regardé dans google,rien de d'interessant

    merci d'avance

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    Toute les fenêtre de ton application, c'est possible. Il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maFrame.setExtendedState(JFrame.ICONIFIED);
    sur chacune d'elle.

    Par contre, il est impossible d'agir sur les fenêtres en dehors de ton application.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 141
    Par défaut
    oui je voulais agir sur les fenetre en dehors de l'application :/

  4. #4
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Par défaut
    Hmm...je ne sais pas quels sont tes besoins, mais toucher a des applications qui ne "t'appartiennent" pas, d'un point de vue ergonomique c'est affreux. Normalement, tu n'as pas a decider a la place de l'utilisateur ce qu'il doit faire de ses applications.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 141
    Par défaut
    enfait
    je veux que lorsque ma fenetre de login s'ouvre,au moins qu'elle ait pour fond ,le desktop,mais pas les fentres deja ouvertes par l'utilisateur..

  6. #6
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    Je suis de l'avis de Ksempac : il n'est pas normal que ton application puisse agir sur des fenêtres qui ne lui appartiennent pas.

    Il m'est cependant venu à l'idée cette petite horreur qui a l'air de fonctionner (du moins sous Windows XP). Cependant, je ne te conseille absolument pas de faire ça.

    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
            try {
                // création d'un fichier temporaire qui est en fait une réplique du raccourcis "Bureau" de la barre de lancement rapide de Windows.
                File fic = File.createTempFile("minimize_all", ".scf");
                FileWriter fw = new FileWriter(fic);
                fw.write("[Shell]\r\nCommand=2\r\nIconFile=explorer.exe,3\r\n[Taskbar]\r\nCommand=ToggleDesktop\r\n");
                fw.close();
     
                // exécution de ce fichier
                String[] cmd = {"cmd", "/c", fic.getAbsolutePath()};
                Process process = Runtime.getRuntime().exec(cmd);
                try {
                    // attente de la fin de l'exécution du fichier.
                    process.waitFor();
                    //suppression du fichier
                    fic.delete();
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
     
                // attendre 500 ms avant de dé-minimiser l'application JAVA; qui a été minimisée avec les autres
                new Timer().schedule(new TimerTask() {
                    @Override
                    public void run() {
                        setExtendedState(JFrame.NORMAL);
                    }
                }, 500);
            } catch (IOException ex) {
                ex.printStackTrace();
            }

  7. #7
    Membre expérimenté Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Par défaut
    Citation Envoyé par Halloula Voir le message
    enfait
    je veux que lorsque ma fenetre de login s'ouvre,au moins qu'elle ait pour fond ,le desktop,mais pas les fentres deja ouvertes par l'utilisateur..
    Oui, ca j'ai bien compris, c'est ce que tu veux faire. Moi ce qui m'interesse, c'est le POURQUOI ? Quelle raison as tu de vouloir faire cela ?

    T'imposer comme ca, c'est un peu comme si en allant sur un site web, tu ne pouvais soudainement plus acceder au reste de tes onglets ouverts ou changer de page web tant que tu n'as pas fini de repondre a leur questionnaire.

    C'est particulierement frustrant/enervant pour l'utilisateur. Donc j'ai du mal a comprendre pourquoi tu veux t'aliener tes utilisateurs comme ca.

    PS : Uther > lol, hideux, mais 1 point tout de meme pour l'originalité

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut
    c'est possible de manière très simple !
    en gros il suffit que ton application java émette l'évènement : Windows+D
    C'est comme quand tu appuis sur ces touches pour réduire toutes tes fenêtres, et ba là c'est ton application qui lance l'évènement et non ton clavier, mais le résultat sera le même !
    Après je sais pas si c'est possible en java, mais je sais que en C# ça se fait facilement, maintenant à toi de chercher

  9. #9
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    C'est équivalent à ma solution, voire pire, on utilise un raccourcis clavier au lieu d'un fichier a exécuter.
    Les deux méthodes sont moche, approximatives et non portable.

    En java effectuer des évènements clavier ce fait via la classe java.awt.Robot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            try {
                r = new Robot();
                r.keyPress(KeyEvent.VK_WINDOWS);
                r.keyPress(KeyEvent.VK_D);
                r.delay(100);
                r.keyRelease(KeyEvent.VK_D);
                r.keyRelease(KeyEvent.VK_WINDOWS);
     
                r.delay(500);
                setExtendedState(JFrame.NORMAL);
            } catch (AWTException ex) {
                Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
    La encore je ne cautionne pas l'utilisation de ce code.

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 126
    Par défaut
    ah ouai, moi aussi mais c'est déjà un peux plus portable et plus simple que l'autre solution, mais c'est sûr que c'est ultra moche !
    après pour ma part une application ne devrait pas avoir le contrôle sur d'autre qui sont indépendantes !!!

Discussions similaires

  1. Réponses: 14
    Dernier message: 23/10/2012, 10h14
  2. Réponses: 11
    Dernier message: 03/10/2010, 13h44
  3. Les services sous linux avec JAVA
    Par nabil148911 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 04/07/2008, 09h35
  4. Enlever ou remplacer le petit logo java dans les fenetres
    Par BernardT dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 16/07/2005, 18h45

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