色を回転させるString
を作成しようとしています。すべての文字は異なるcolor
であり、線形に回転する必要があります。テキストはJLabel
の中に入ります。文字列の色の間で回転
単語と色の配列(文字列)を指定して作成できるようにテキストを作成しました。
String[] colors = {"white", "blue", "red"};
String word = "foo";
String coloredText;
String[] letters = word.split("(?!^)"); //split text into indiv. letters
coloredText = "<html>";
for(int i = 0, j = 0; i < letters.length; i++, j++){
if(j >= colors.length)
j=0;
coloredText += String.format("<font color='%s'> %s </font>", colors[j], letters[i]);
}
coloredText += "</html>";
これはO
青とO
最終の赤、白F
とFOOを有する文字列になります。
もちろん、文字より色が薄い場合は、回転し続けるだけです。
今、私はtimer
を使って色を回転させましたが、私はalgorithm
を実行することができません。 基本的に、すべての色は次の色に置き換えてください。最後の色は最初の色に置き換えてください。
ですから、例えば:もちろん
これは無視され合わない色で、与えられた文字や色、任意の数のために働くことがあります。 (10色の3文字の単語は、最初の3色のみを使用します)。
私は.replace()
を使用しようとしましたが、regex
は少し難しいです。
フィールドの最初の文字に使用した色のインデックスを保持し、文字列の色を塗るたびに減らします。 -1に達した場合は、最後のインデックスにリセットします。最初のラウンドは0なので、あなたはWBRになります。次にそれを減らします。 -1になるので、2に設定するとRWBになります。それからあなたはそれを減らし、あなたはBRWで終わります。 –