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 :

Effacer information saisie


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Effacer information saisie
    Bonjour,

    Je développe une petite application en java et je souhaiterai quand l'utilisateur souhaite mettre fin au programme, que la console se vide.
    J'ai donc créer une méthode quitter mais je n'arrive pas à effacer le contenu de la console
    Voici ma méthode quitter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	private void quitter(){
    		System.out.println("Voulez-vous fermer le DAB ? (O ou N)");
    		String choix = sc.next();
    		if(choix == "o" || choix == "O"){
    			//instruction manquante pour vider la console
    		}
    	}
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    La console n'est pas de la responsabilité de l'application. En général, c'est la responsabilité du système d'exploitation. Ce qui fait qu'il n'y a pas de moyen simple pour vider cette console.
    Mon conseil est de ne pas vider la console. Ce n'est pas la responsabilité de l'application de décider de cela.

    Si malgré tout tu veux le faire, il semble y avoir deux moyens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public final static void clearConsole() {
        try {
            final String os = System.getProperty("os.name");
            if (os.contains("Windows")) {
                Runtime.getRuntime().exec("cls");
            } else {
                Runtime.getRuntime().exec("clear");
            }
        } catch (final Exception e) {
            //  Handle any exceptions.
        }
    }
    A bien noter qu'on demande à l'Os de faire quelque chose pour nous. (On n'est PAS dans l'application.)


    Sinon, il semble existe une librairie qui gère la console JLine :
    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
    import jline.console.ConsoleReader;
     
    public class JLineTest
    {
        public static void main(String... args)
        throws Exception
        {
            ConsoleReader r = new ConsoleReader();
     
            while (true)
            {
                r.println("Good morning");
                r.flush();
     
                String input = r.readLine("prompt>");
     
                if ("clear".equals(input))
                    r.clearScreen();
                else if ("exit".equals(input))
                    return;
                else
                    System.out.println("You typed '" + input + "'.");
     
            }
        }
    }
    A voir dans la javadoc correspondante la méthode voulu :
    http://jline.sourceforge.net/javadoc...arScreen%28%29

    Encore une fois, ce genre de comportement est à BANNIR !
    En Unix/Linux, les sortie console peuvent être rediriger entant qu'entré dans un autre programme ou écrit dans un fichier. Pour débogage par exemple...

    Cordialement,
    Patrick Kolodziejczyk

    Source :
    http://www.dreamincode.net/forums/to...onsole-screen/
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Je vais tester,

    Je développe sous eclipse sinon

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par kolodz Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public final static void clearConsole() {
        try {
            final String os = System.getProperty("os.name");
            if (os.contains("Windows")) {
                Runtime.getRuntime().exec("cls");
            } else {
                Runtime.getRuntime().exec("clear");
            }
        } catch (final Exception e) {
            //  Handle any exceptions.
        }
    }
    Marchera pas, ca va faire un clear de la console associée à Runtime, c'est à dire de rien. Il faut au minimum passer par processbuilder et lui dire d'hériter de IO du process java. Et même avec ça, pas sur que ça marche, je ne sais pas si l'héritage est réel ou juste géré en backend par des threads qui transfèrent les données.

    Citation Envoyé par kolodz Voir le message
    Encore une fois, ce genre de comportement est à BANNIR !
    En Unix/Linux, les sortie console peuvent être rediriger entant qu'entré dans un autre programme ou écrit dans un fichier. Pour débogage par exemple...
    C'est le même sous windows hein La redirection des IO n'est pas l'exclusivité de linux :p


    La question est plutôt de savoir quel est l'intérêt de tout cela? Pourquoi tu as besoin d'effacer la console? Au mieux tu va faire ch** ton utilisateur.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    C'est pour lui signaler qu'il a bien quitter le programme
    Il y a vraiment aucun moyen de ne plus rien afficher dans la console

  6. #6
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    C'est le même sous windows hein La redirection des IO n'est pas l'exclusivité de linux :p
    Personne n'utilise la ligne de commande sous Windows...

    C'est pour lui signaler qu'il a bien quitter le programme
    Si c'est pour ça tu ajoute un message "Au revoir !" à la fin de la console.
    Dans tout les cas, Windows et Linux identifie quand le programme est finit et commence une nouvelle ligne avec l'emplacement actuelle...
    Et ce n'est pas à ton application de gérer le comportement de la console après la fermeture de ton application.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    Je lance pas sur une console windows, je lance dans la console d'eclipse

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/04/2009, 18h26
  2. Réponses: 37
    Dernier message: 09/06/2008, 23h10
  3. effacer la saisie semi automatique
    Par intik dans le forum Windows XP
    Réponses: 1
    Dernier message: 19/01/2007, 22h16
  4. [Layout] Récuperation des informations saisies
    Par imane_bennouna dans le forum Struts 1
    Réponses: 1
    Dernier message: 18/08/2006, 10h10

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