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

avec Java Discussion :

Affichage de quelques lettres dans un TextArea ou boite modale


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut Affichage de quelques lettres dans un TextArea ou boite modale
    bonjour,
    je prépare une application qui consiste à utiliser le résultat de l'invite de commande (runtime.getruntime().exec(cmd)) pour une commande déja tapé,et l'affiche dans un Textarea,mais je remarque que si j'utilise une boite modale le probléme persiste,mon probléme est commant je peut afficher les "é" et le "è" parce qu'ils s'affichent sous la forme d'un petit cube (quelque soit dans le text area ou la boite modale),si quel qu'un connaitre comment je peut résoudre le probléme car je suis débutant en java et merci pour tout aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 95
    Points : 76
    Points
    76
    Par défaut
    Il me semble que ce sujet a déjà pas mal était abordé sur la toile.

    Une petite recherche sur Google avec les mots clés "remplacer caractère spéciaux java" devrait faire ton bonheur je pense

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Problème de charset.

    Ton exec(cmd) te donne un process, dont tu lis le InputStream. Ensuite tu transformes ce InputStream en caractères, en passant par un Reader ou directement en transformant les octets en String.
    Cette transformation, octets vers caractères, tu la fais en utilisant un mauvais charset.

    - Que changer au juste pour utiliser un autre charset => J'en sais rien, ça dépend de ton code. Il faut que tu montres comment tu obtiens la String que tu affiches.

    - Quel est le bon charset => J'en ai aucune idée . Ça dépend de pas mal de choses. Normalement ça devrait être le charset par défaut... Mais dans ce cas-là tu ne devrais pas avoir d'erreur.
    C'est pour ça qu'il faut nous montrer comment tu transformes les octets en String.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    Voici la méthode Actionperformed,si je clique sur jButton1 :
    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
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
            // TODO add your handling code here:
     
     
            if(evt.getSource()==jButton1)
    		{
            if(jTextField1.getText().compareToIgnoreCase("")!=0){
     
     
    			start(jTextField1.getText());
    			}
     
    			else 
    			{
    		JOptionPane.showMessageDialog(this, 
    			       "Vous devez taper une adresse ip VALIDE!",
    			       "Erreur d'execution", 
    			        JOptionPane.WARNING_MESSAGE);
    			}
                    }	
     
     
        }
    Puis, c'est la méthode qui va utiliser l'invite de commande après le clique sur le jButton1 et va envoyer le résultat vers le textarea (jTextArea1) :
    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
    public void start(String TextTape){
     
     try{
     
    	String 	 cmd = "tracert "+TextTape;
    	jTextArea1.append("debut de la localisation:");
    		Process p = Runtime.getRuntime().exec(cmd);
    		InputStream in = p.getInputStream();
    		StringBuilder build = new StringBuilder();
    		char c = (char)in.read();
    		while(c !=(char)-1){
    		build.append(c);
    		c = (char)in.read();
    	}
    	String response = build.toString();
    		jTextArea1.setText(response);
    		 }catch(Exception e){
    			 jTextArea1.append(e.toString());
    			 }
            }
    J'ai téléchargé jcharset.jar mais mon problème persiste,les "é" et le "è" ne seront pas affichés.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    Citation Envoyé par hamzawhy Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char c = (char)in.read();
    Pouah !

    C'est censé être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Reader reader = new InputStreamReader(in);
    char[] buffer = new char[512];
    int nbRead = reader.read(buffer);
    while(nbRead > 0) {
      build.append(buffer, 0, nbRead);
      nbRead = reader.read(buffer);
    }
    ... Mais bon... C'est plus propre mais je pense pas que ça résolve le problème. Sauf cas vraiment très particulier.

    On peut voir la valeur sous forme de int, de chacun des octets que tu lis ?

    Citation Envoyé par hamzawhy Voir le message
    J'ai téléchargé jcharset.jar mais mon problème persiste,les "é" et le "è" ne seront pas affichés.
    En même temps, télécharger des fichiers, ça va jamais changer grand-chose à tes programmes, tu sais -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut
    voici le résultat qui s'affiche dans le textarea et je ne sait pas comment les éliminés et les remplacés par les lettres exactes:
    tracert www.google.fr

    D�termination de l'itin�raire vers www-cctld.l.google.com [74.125.230.248]

    avec un maximum de 30 sauts�:



    1 46 ms 99 ms 99 ms dsldevice.lan [192.168.1.254]

    2 19 ms 19 ms 19 ms 41.226.21.8

    3 19 ms 19 ms 18 ms 172.18.0.1

    4 23 ms 18 ms 22 ms 192.168.0.2

    5 20 ms 19 ms 20 ms 192.168.1.2

    6 20 ms 20 ms 19 ms 192.168.2.1

    7 19 ms 20 ms 19 ms 193.95.19.77

    8 20 ms 19 ms 19 ms 193.95.96.153

    9 19 ms 19 ms 19 ms 193.95.1.102

    10 43 ms 87 ms 60 ms 72.14.196.233

    11 55 ms 55 ms 69 ms 216.239.43.156

    12 48 ms 48 ms 3640 ms 209.85.252.36

    13 70 ms 75 ms 69 ms 216.239.43.68

    14 58 ms 56 ms 56 ms 209.85.242.51

    15 55 ms 54 ms 55 ms par08s10-in-f24.1e100.net [74.125.230.248]



    Itin�raire d�termin�.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 557
    Points : 21 616
    Points
    21 616
    Par défaut
    En faisant quelques essais j'ai remarqué qu'il vaudrait mieux construire mon InputStream autrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reader reader = new InputStreamReader(in, "IBM850");
    Le IBM850 indique qu'il faut lire le stream dans le charset par défaut d'une console windows européenne.
    Pourquoi tracert écrit-il dans ce vieux charset pourri alors qu'on n'est même pas dans une console, est-ce que le problème est le même chez toi, j'en ai aucune idée.
    Mais à ta place j'essaierais déjà ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre régulier
    Homme Profil pro
    étudiant
    Inscrit en
    Septembre 2011
    Messages
    342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 342
    Points : 124
    Points
    124
    Par défaut
    merciiiiiiiiii thelvin ça marche maintenant,

  9. #9
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par hamzawhy Voir le message
    merciiiiiiiiii thelvin ça marche maintenant,
    Tu peux donc passer le topic en résolu, non ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

Discussions similaires

  1. affichage de quelques colonnes dans le 'dbgrid'?
    Par hayat2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/05/2010, 16h19
  2. Piocher seulement quelques lettres dans une cellule
    Par Iloon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2008, 12h58
  3. <select> <option> et affichage dans un textarea
    Par gazelle dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 05/06/2006, 13h23
  4. Réponses: 2
    Dernier message: 02/02/2006, 22h38

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