2013-04-09 2 views
0

Мне нужно уметь выделять слова в двух символах. Например,:Java - выделение текста между двумя символами - JTextPane

//Highlight whatever is in between the two quotation marks 
String keyChars = " \" \" "; 

Я уже изнемогаю над этим в течение нескольких недель. Я просмотрел его, прочитал исходники, написал код, и все же мне еще предстоит выяснить, как я смогу это сделать.

+0

* "написал код", * Что вы пробовали, в частности? Как это случилось? –

+0

Отметьте [это] (http://stackoverflow.com/questions/13448558/highlight-a-word-in-jeditorpane/13449000#13449000) Например, он использует 'JEditorPane', но концепция должна быть одинаковой. – MadProgrammer

+0

Здесь это подсказка, которая пытается найти класс DefaultHighlighter.DefaultHighlightPainter. И Проверьте, что такое регулярное выражение. – Jayamohan

ответ

1

Работает следующий фрагмент кода.

ed=new JEditorPane(); 
ed.setText("This \"text\" contains \"quotes\". The \"contents\" of which are highlighted"); 
Pattern pl; 
pl=Pattern.compile("\""); 
Matcher matcher = pl.matcher(ed.getText()); 
int end=0,beg=0; 
while(matcher.find()) 
{ 
    beg=matcher.start(); 
    matcher.find(); //finding the next quote 
    end=matcher.start(); 
    DefaultHighlightPainter d = new DefaultHighlightPainter(Color.YELLOW); 
    try { 
     ed.getHighlighter().addHighlight(beg+1, end,d); 
    } catch (BadLocationException ex) { 
     ex.printStackTrace(); 
    } 
} 
+0

Спасибо за ответ, хотя, к сожалению, это не то, что я искал - моя вина, потому что я не был достаточно ясен с моим вопросом. То, что я должен был сказать, было «живое выделение» между двумя персонажами. Виноват. – user2228462

Смежные вопросы