この投稿は私の最後の投稿に関連しています。コードのブロックは、目的の時間の後にテキストを目的の色に変更します。ただし、今では、各文字が同じ時間になるように特定の単語の色を変更したいと考えています。例えば、「hello」に 1000 ミリ秒の時間が与えられている場合 (5 文字)、「h''e''l' 'l''o' の各文字は 1000/5 ミリ秒、つまりそれぞれ 200 ミリ秒になります。
私はこれのためにスイングタイマーを実装しました:
public Reminder() {
a[0]=2000;
a[1]=1000;
a[2]=3000;
a[3]=5000;
a[4]=3000;
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
point =point +arr[i].length();
i++;
doc.setCharacterAttributes(0,point+1, textpane.getStyle("Red"), true);
timer.setDelay(a[i]);
}
};
timer = new Timer(a[i], actionListener);
timer.setInitialDelay(0);
timer.start();
これを行うには、特定の文字にさらにタイミングを与えるためにTimer
内部で別のものを使用する必要がありますか?または、最初に時間を破って
からタイマーを使用する必要がありますか?私はより良い方法を決めることができません.何かアイデアはありますか?actionListener
.length()