0

キーが入力されるたびに、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 のテキストのすべての文字を変更することです。それを解決する方法は?

4

2 に答える 2

0

JTextPane 内で HTML を使用できます。それについて読んでください。

于 2013-03-02T13:28:24.713 に答える
0

単語間のスペースを忘れました:

//lastIndex += codeWords[a].length();
lastIndex += codeWords[a].length() +1;

もちろん、これはスペースが 1 つしかないことを前提としています。

于 2013-03-02T16:53:38.207 に答える