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 :

Surlignage et perte de focus


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut Surlignage et perte de focus
    Bonjour,

    j'utilise un JEditorPane dans lequel je surligne une partie du texte.
    Mais dès que mon JEditorPane perd le focus, le surlignage disparaît.
    J'aimerais conserver le surlignage et à la rigueur en changer la couleur lorsque le focus est pris par un autre widget.
    Comment faire ?
    Merci pour votre aide

  2. #2
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Un petit bout de code que j'avais trouvé sur le net fait ce que tu veux :
    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
     
    // Creates highlights around all occurrences of pattern in textComp
    	public void highlight(JTextComponent textComp, String pattern) {
    		// First remove all old highlights
    		removeHighlights(textComp);
     
    		try {
    			Highlighter hilite = textComp.getHighlighter();
    			Document doc = textComp.getDocument();
    			String text = doc.getText(0, doc.getLength());
    			int pos = 0;
     
    			// Search for pattern
    			while ((pos = text.indexOf(pattern, pos)) >= 0) {
    				// Create highlighter using private painter and apply around
    				// pattern
    				hilite.addHighlight(pos, pos + pattern.length(),
    						myHighlightPainter);
    				pos += pattern.length();
    			}
    		} catch (BadLocationException e) {
    		}
    	}
     
    	// Removes only our private highlights
    	public void removeHighlights(JTextComponent textComp) {
    		Highlighter hilite = textComp.getHighlighter();
    		Highlighter.Highlight[] hilites = hilite.getHighlights();
     
    		for (int i = 0; i < hilites.length; i++) {
    			if (hilites[i].getPainter() instanceof MyHighlightPainter) {
    				hilite.removeHighlight(hilites[i]);
    			}
    		}
    	}
     
    	// An instance of the private subclass of the default highlight painter
    	Highlighter.HighlightPainter myHighlightPainter = (HighlightPainter) new MyHighlightPainter(
    			new Color(205, 235, 255));
     
    	// A private subclass of the default highlight painter
    	class MyHighlightPainter extends DefaultHighlightPainter {
    		public MyHighlightPainter(Color color) {
    			super(color);
    		}
    	}
    Pour l'appeler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    highlight(editeur, "une chaine");
    +++
    Ju

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut
    Super ça marche, merci

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

Discussions similaires

  1. [C#] Detecter la perte de focus
    Par iowa dans le forum Windows Forms
    Réponses: 10
    Dernier message: 15/03/2006, 14h03
  2. Réponses: 9
    Dernier message: 02/02/2006, 15h46
  3. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22
  4. excel -> test lors de la perte du focus d'une cellule
    Par greg778 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 26/09/2005, 17h26
  5. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 08h00

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