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 :

Quitter un programme à tout moment à l'appuie d'une touche


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Points : 31
    Points
    31
    Par défaut Quitter un programme à tout moment à l'appuie d'une touche
    Bonjour,

    Existe-il une solution pour quitter rapidement un programme à tout moment, même quand ce dernier est en cours d'exécution ?

    En gros j'ai un programme lancé en tâche de fond qui tourne périodiquement grâce à un Timer et à un TimerTask, et j'aimerais l'arrêter proprement par une touche.

    Merci

  2. #2
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Bonjour
    Il faut appliquer un KeyListener sur ton composant graphique.
    Cependant tu parle de tâche de fond, pour que l'appuie d'une touche soit prise en compte il faut que ton application est le focus. ça posera problème.

    Enfin un simple System.exot(0); suffit lors de l'appuie de la touche.
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 43
    Points : 31
    Points
    31
    Par défaut
    Merci pour la réponse. Malheureusement j'ai omis un point important de l'application : elle n'utilise pas d'interface graphique mais un terminal...

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 981
    Points
    7 981
    Par défaut
    Tu px intercepter un CONTROL-C avec ceci je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() { ... }
     });
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Regarde du côté de la classe Runtime et de la méthode addShutdownHook:
    http://download.oracle.com/javase/6/...a.lang.Thread)

  6. #6
    Membre confirmé 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
    Points : 508
    Points
    508
    Par défaut
    Tu peux aussi avoir un server socket qui écoute sur un port donné.
    à partir d'une application cliente de ta conception, tu lui envoie un signal d'arrêt.
    Dans ton appli en tâche de fond, quand tu reçois la bonne commande d'arrêt, tu peux alors faire un :
    Toute vérité est bonne à entendre, même si toutes les vérités ne sont pas bonnes à dire.
    Rien ne sert de partir à point, il vaut mieux courir .

Discussions similaires

  1. sortir d'un programme à tout moment
    Par blabla06 dans le forum Windows
    Réponses: 3
    Dernier message: 04/06/2008, 14h14
  2. Réponses: 25
    Dernier message: 18/12/2007, 22h06
  3. Réponses: 7
    Dernier message: 30/05/2007, 14h15
  4. Réponses: 9
    Dernier message: 15/05/2007, 16h45
  5. [JTable]Définir à tout moment le background d'une cellule
    Par krolineeee dans le forum Composants
    Réponses: 10
    Dernier message: 11/09/2006, 17h35

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