我想读取用户输入的文本,然后突出显示特定单词并将其返回给用户。我可以阅读文本并将其返回给用户,但我不知道如何突出显示单个单词。如何使用 java swing 在 JTextArea 中突出显示单个单词?
DefaultHighlighter
附带的
JTextArea
。例如,import java.awt.Color;
import javax.swing.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.Highlighter;
import javax.swing.text.Highlighter.HighlightPainter;
public class Foo001 {
public static void main(String[] args) throws BadLocationException {
JTextArea textArea = new JTextArea(10, 30);
String text = "hello world. How are you?";
textArea.setText(text);
Highlighter highlighter = textArea.getHighlighter();
HighlightPainter painter =
new DefaultHighlighter.DefaultHighlightPainter(Color.pink);
int p0 = text.indexOf("world");
int p1 = p0 + "world".length();
highlighter.addHighlight(p0, p1, painter );
JOptionPane.showMessageDialog(null, new JScrollPane(textArea));
}
}
添加突出显示():
p0
p1
p0
p
: 引用突出显示的对象
投掷:
BadLocationException
- 对于无效的范围规范