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 :

JTextPane et printStackTrace


Sujet :

Java

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut JTextPane et printStackTrace
    Bonjour,

    Comment faut-il faire pour afficher dans un JTextPane le e.printStackTrace ?

    j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	private JTextPane jtp1 = new JTextPane();
    	private StyledDocument console = jtp1.getStyledDocument();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    				try {
    					Scanner scn = new Scanner (new File("fichier introuvable.txt"));
    				} catch (FileNotFoundException e) {
    					//e.printStackTrace();
    					try {
    						console.insertString(0, e.toString(), null);
    					} catch (BadLocationException e1) {
    						// TODO Auto-generated catch block
    						e1.printStackTrace();
    					}
    				}
    => le problème est que la mise en forme et les liens ne sont pas affichés : je voudrais que ça m'affiche la même chose que dans la console d'eclipse

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Salut,
    pour la mise en forme tu peux récupérer la stackTrace telle qu'elle serait affichée dans la console en faisant ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    e.printStackTrace(pw);
    pw.flush();
    pw.close();
    String resultat = sw.toString();
    pour les liens, il s'agit d'un gestion propre à Eclipse, qui transforme en lien tout ce qui ressemble à une classe, éventuellement suivi d'un numéro de ligne. C'est intransposable tel quel dans une application Swing, désolé!

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Merci.

    Effectivement en utilisant ta methode, j'ai plus d'infos (les meme que dans la console eclipse). Cependant je n'ai pas la même mise en forme => sous eclipse c'est écrit en rouge alors que dans ma console c'est en noir.
    ça veut dire que c'est eclipse qui décide d'écrire le texte en rouge et non pas le printStackTrace, non ? donc c'est a moi de le faire non (je ne peux pas récupérer directement le texte en rouge) ?

  4. #4
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Que veux-tu faire quand on clique sur un lien ? Ouvrir le fichier dans Eclipse ?

    Eclipse peut le faire lui, puisque tu es dans Eclipse... Par contre, qu'un programme externe ouvre le bon fichier sous Eclipse, je ne sais pas si c'est faisable...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Citation Envoyé par Claythest Voir le message
    Que veux-tu faire quand on clique sur un lien ? Ouvrir le fichier dans Eclipse ?

    Eclipse peut le faire lui, puisque tu es dans Eclipse... Par contre, qu'un programme externe ouvre le bon fichier sous Eclipse, je ne sais pas si c'est faisable...
    Effectivement ça ne me semble pas possible à faire et en plus il n'y a aucune utilité à le faire (car dans une appli on ne met généralement pas les codes sources avec).

    Donc si j'ai bien compris, e.printStackTrace( ne renvoie aucune mise en forme (juste du texte), non (c'est à nous de le faire) ?

  6. #6
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Pour info pour le coup du texte en rouge, c'est encore Eclipse qui différencie dans la console les textes affichés sur System.out (en noir) et les textes affichés sur System.err en rouge (comme par exemple les printStackTrace).

    La encore c'est à toi de gérer la présentation dans ton JTextPane (il me semble que tu peux par exemple utiliser du code HTML si c'est ton truc, sinon tu dois pouvoir changer la couleur d'affichage plus simplement)

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Par défaut jtexarea
    Citation Envoyé par Jidefix Voir le message
    Salut,
    pour la mise en forme tu peux récupérer la stackTrace telle qu'elle serait affichée dans la console en faisant ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    e.printStackTrace(pw);
    pw.flush();
    pw.close();
    String resultat = sw.toString();
    bjr
    si je veux afficher le résultat d'une boucle afficher dans la console dans un Jtextarea comment dois-je procéder???

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

Discussions similaires

  1. [JTextPane] Extraire un mot
    Par doudine dans le forum Composants
    Réponses: 3
    Dernier message: 21/04/2012, 22h11
  2. [Swing] Centré un texte dans un JTextPane
    Par titi_22 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/06/2011, 16h09
  3. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 19h20
  4. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 15h01
  5. Scroll automatique dans un JTextPane
    Par regbegpower dans le forum Composants
    Réponses: 9
    Dernier message: 11/11/2003, 09h24

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