我想编写一个程序,我会重新着色特定的单词。
像这样:
嘿,我喜欢带骨头的胡萝卜。我想在输入胡萝卜时自动让它变成蓝色。 哇,我在代码中这样做?
我已经尝试过了:
public void getWord(String whatword){
if(jtextarea.contains(whatword){
//Stuck on here
}
例如: 如果我输入:
我喜欢胡萝卜和金枪鱼。
我想将胡萝卜和金枪鱼的颜色改为蓝色。 而其他的话需要保持黑色。
现在我不知道如何重新着色这个词,以及if if语句是否有效。 那么,我该如何解决这个问题?
对不起,我是荷兰人,所以你需要用这种语言来做,我想
答案 0 :(得分:3)
JTextArea
仅用于包含纯文本,不能为某些单词着色。如果您希望能够为不同的单词着色,则需要使用JTextPane或JEditorPane。
有关详细信息,请参阅此question。这个question也可能有用
以下是一个例子:
JTextPane textPane = new JTextPane();
StyledDocument doc = textPane.getStyledDocument();
Style style = textPane.addStyle("I'm a Style", null);
StyleConstants.setForeground(style, Color.red);
String word = "Hello";
if (word.equals("Hello") {
try {
doc.insertString(doc.getLength(), word, style);
} catch (BadLocationException ex) {
ex.printStackTrace();
}
} else {
StyleConstants.setForeground(style, Color.blue);
try {
doc.insertString(doc.getLength(), word, style);
} catch (BadLocationException e) {
e.printStackTrace();
}
}
这会产生一个字符串word
。如果单词为"Hello"
,则它将以红色显示,否则将以蓝色显示。