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

AWT/Swing Java Discussion :

effacer le contenu d'un JTextPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Par défaut effacer le contenu d'un JTextPanel
    Bonjour,

    voila je suis entrein de realiser une application qui transforme du XMl en code Java.
    Pour afficher mes différent messages d'erreurs ou ceux pour dire que tout s'est bien dérouler j'utilise un JTextPanel.

    J'ai deux problemes: le probleme c'est que je ne sais pas comment effacer son contenu avant d'afficher le nouveau message. Je n'ai pas trouver de methode qui face l'affaire dans la javadoc.

    Mon deuxieme probleme, que la je comprends pas du tout (je dois trop etre dans mon code pour voir l'erreur moi meme. Voila au moment ou je veut afficher mon texte je fait un test pour savoir si c'est le message commence par "Erreur" alors je veux afficher le message en rouge, dans le cas contraire je veux le mettre en Vert.
    Mais voila Le message d'erreur il me le met en vert :-s il ne me fait pas le changement de couleurs.

    Voila ma classe
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.Dimension;
     
    public class ErrorPanel extends JPanel {
    	//declaration
    	private JTextPane textError;
    	private DefaultStyledDocument doc;
    	private Style greenStyle;
    	private Style redStyle;
     
    	public ErrorPanel() {
    		//initilisation
    		//definition des style d'ecriture
    		StyleContext styleContext = new StyleContext();
    		redStyle = styleContext.addStyle(null,null);
    		StyleConstants.setForeground( redStyle, Color.red);
    		greenStyle = styleContext.addStyle(null,null);
    		StyleConstants.setForeground( greenStyle, Color.green);
    		doc = new DefaultStyledDocument( styleContext );
    		textError = new JTextPane( doc );		
    		textError.setEnabled( false );
    		JScrollPane scrollBar = new JScrollPane( textError );
    		scrollBar.setPreferredSize( new Dimension( 780, 100 ) );
    		this.add( scrollBar );
    	}
     
    	public void fctPrintError( String result ) {
    		//information message in green
    		System.out.println( result.substring( 0,6 ) );
    		if( result.substring( 0,6 ) =="Erreur") {
    			try {
    				doc.insertString( 0, result,redStyle );
    			}
    			catch( BadLocationException e ) {
    				System.out.println( "Erreur" );
    			}
    		}
    		//error message in red
    		else {
    			try {
    				doc.insertString( 0,result, greenStyle );
    			}
    			catch( BadLocationException e ) {
    				System.out.println( "Erreur" );
    			}
    		}
    	}
    }
     
     
    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Pour effacer le contenu d'un JTextPane, il suffit de ne rien mettre dedans : jtxtPane.setText("");, mais si c'est pour remettre tout de suite quelque chose dedans, alors écris directement le nouveau texte, l'ancien s'effacera.

    Pour ton problème de rouge et vert, c'est parce que tu fais mal la comparaison de chaîne ; tu fais if (result.substring( 0,6 ) =="Erreur"), il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ("Erreur".equals(result.substring( 0,6 )))
    Je te conseille de consulter les tutoriaux sur les sujets des == et des equals.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    tu peux aussi faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (result.startsWith("Erreur"))
    parmis plein d'autres solutions...

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2005
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 226
    Par défaut
    Bonjour, juste par curiosité (j'ai pas vu dans la doc mais je l'ai peut raté) et il possible d'utiliser le setText avec le style de texte que je veux utiliser ou je peux juste manipuler le text. pour l'instant j'ai fait l'effacement avec le setText et j'ai laisser ma ligne. C'est un peu de la bidouille c'est pour ca que je demande s'il y a plus propre.


    Pour l'erreur du if c'est vrai que le "==" marche pas sur les strings. Mais je l'avais completement oublier enfin sur le coup.

    Merci de votre aide.

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

Discussions similaires

  1. Effacer le contenu d une zone de liste
    Par nico5151 dans le forum IHM
    Réponses: 23
    Dernier message: 22/06/2005, 15h50
  2. Effacer le contenu d'un fichier texte...
    Par loupdeau dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2005, 15h28
  3. comment effacer le contenu d'une table ttable
    Par naw dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/07/2004, 16h13
  4. Comment effacer le contenu d'une scrollbox???
    Par Leclair2000 dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/07/2004, 16h34
  5. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47

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