キーが入力されるたびに、jpane の文字を取得し、スペースを使用してそれらを分割し、すべての単語を他の (ランダムな) 色で色付けします。このコードの断片は、次の作業を行います。
private class KeyHandler extends KeyAdapter {
@Override
public void keyPressed(KeyEvent ev) {
String[] codeWords = codePane.getText().split("\\s");
StyledDocument doc = codePane.getStyledDocument();
SimpleAttributeSet set = new SimpleAttributeSet();
int lastIndex = 0;
for (int a = 0; a < codeWords.length; a++) {
Random random = new Random();
StyleConstants.setForeground(set, new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
doc.setCharacterAttributes(lastIndex, codeWords[a].length(), set, true);
lastIndex += codeWords[a].length();
}
}
}
問題は、すべての単語ではなく、jpane のテキストのすべての文字を変更することです。それを解決する方法は?