metodos insertar imagen example definicion java swing jtextpane

insertar - scrollbar java



JTextPane resaltar texto (5)

¿Puedo resaltar algo de texto en un JTextPane comenzando desde un valor y terminando desde otro valor como el siguiente pero con el color amarillo?

"" Texto destacado JTextPane ""

Gracias.


Como a menudo hay varias posibilidades, dependiendo de lo que realmente quiere decir con "resaltar" :-)

Destaque cambiando los atributos de estilo de las partes de texto arbitrarias en el nivel del documento, algo así como

SimpleAttributeSet sas = new SimpleAttributeSet(); StyleConstants.setForeground(sas, Color.YELLOW); doc.setCharacterAttributes(start, length, sas, false);

Resalte a través de un Resaltador en el nivel de textoPanel:

DefaultHighlighter.DefaultHighlightPainter highlightPainter = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW); textPane.getHighlighter().addHighlight(startPos, endPos, highlightPainter);



¿Has probado el método de comparación de cadenas de Java?

.equalsIgnoreCase("Search Target Text")

Porque este método permite una búsqueda sin tener que tomar en cuenta el caso de una cadena Este podría ser el boleto a lo que está tratando de lograr

Espero que esto te ayude a Makky


en cuanto al rendimiento es mejor poner el toUpperCase en

Texto de cadena = doc.getText (0, doc.getLength ());

en lugar de en el ciclo while

pero gracias por el buen ejemplo.


https://web.archive.org/web/20120530071821/http://www.exampledepot.com/egs/javax.swing.text/style_HiliteWords.html

JTextArea textComp = new JTextArea(); // Highlight the occurrences of the word "public" highlight(textComp, "public"); // 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 // see I have updated now its not case sensitive while ((pos = text.toUpperCase().indexOf(pattern.toUpperCase(), 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 = new MyHighlightPainter(Color.red); // A private subclass of the default highlight painter class MyHighlightPainter extends DefaultHighlighter.DefaultHighlightPainter { public MyHighlightPainter(Color color) { super(color); } }