metodos example definicion java swing jeditorpane

example - scrollbar java



Resalta una palabra en JEditorPane (3)

Aquí está mi caso, necesito resaltar una palabra de búsqueda en EditorPane:

// text in EditPane String text = rSyntaxTextArea.getText(); if (text != null && !"".equals(filterText.getText())) { Highlighter hilit = new RSyntaxTextAreaHighlighter(); rSyntaxTextArea.setHighlighter(hilit); for (int index = text.toUpperCase().indexOf( // searched text filterText.getText().toUpperCase()); index >= 0; index = text .toUpperCase().indexOf( filterText.getText().toUpperCase(), index + 1)) { int end = index + filterText.getText().length(); HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter( Color.LIGHT_GRAY); try { hilit.addHighlight(index, end, painter); } catch (BadLocationException e) { e.printStackTrace(); } } }

Espero que ayude.

Tengo que resaltar todas las apariciones de una palabra en JEditorPane . Para esto estoy usando el siguiente código:

try { javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter = new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW); textPane.getHighlighter().addHighlight(startPos, endPos, highlightPainter); } catch(Exception ex) { }

Pero, ¿cómo puedo dar la posición de índice de una palabra?

Estoy leyendo el contenido del archivo, pero también está leyendo las etiquetas HTML y está alterando el índice de palabras.


Básicamente, debe poder caminar el documento buscando la (s) pareja (s) que necesita ...

public class TestEditorPane01 { public static void main(String[] args) { new TestEditorPane01(); } public TestEditorPane01() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { } JEditorPane editor = new JEditorPane(); try { editor.setPage(new File("Test.html").toURI().toURL()); } catch (Exception exp) { exp.printStackTrace(); } JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(new JScrollPane(editor)); frame.setSize(400, 400); frame.setLocationRelativeTo(null); frame.setVisible(true); Document document = editor.getDocument(); try { String find = "Method"; for (int index = 0; index + find.length() < document.getLength(); index++) { String match = document.getText(index, find.length()); if (find.equals(match)) { javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter = new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW); editor.getHighlighter().addHighlight(index, index + find.length(), highlightPainter); } } } catch (BadLocationException ex) { ex.printStackTrace(); } } }); } }

Esto recorrerá todo el documento y resaltará todas las coincidencias. Este es también un caso de concordancia sensitiva;)


Puedes hacer algo de la siguiente manera:

getHighlighter().addHighlight(start, end, new DefaultHighlighter.DefaultHighlightPainter(Color.red));