TITLE:JLabelの文字列を点滅させる
Posted by terai at 2004-04-12

JLabelの文字列を点滅させる

javax.swing.Timer を使って文字列が点滅するJLabelを作成します。
  • category: swing folder: BlinkLabel title: JLabelの文字列を点滅させる tags: [JLabel, Timer] author: aterai pubdate: 2004-04-12T03:14:13+09:00 description: javax.swing.Timerを使って文字列が点滅するJLabelを作成します。 image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTIHWUuKaI/AAAAAAAAASQ/gfrtJsq0Xck/s800/BlinkLabel.png

概要

javax.swing.Timerを使って文字列が点滅するJLabelを作成します。

#screenshot

サンプルコード

#spanend
#spandel
final JLabel label = new JLabel();
#spanend
#spandel
Timer timer = new Timer(600, new ActionListener() {
#spanend
  boolean flg = true;
  public void actionPerformed(ActionEvent e) {
    label.setText((flg)?"!警告!":"");
    flg = !flg;
  }
#spanadd
* サンプルコード [#sourcecode]
#spanend
#spanadd
#code(link){{
#spanend
#spanadd
JLabel label = new JLabel();
#spanend
#spanadd
Timer timer = new Timer(300, e -> {
#spanend
  label.setText("".equals(label.getText()) ? "!!!Warning!!!" : "");
});
timer.start();

解説

javax.swing.Timerを使って、ラベルのテキスト文字列と空文字列を交互に表示しています。点滅の間隔や、文字列の色を変えたりして実験してみてください。

解説

  • javax.swing.Timerを使ってJLabelにテキスト文字列と空文字列を交互に設定することで点滅を表現している
  • SwingなどのGUIコンポーネントを更新する場合、汎用的で多機能なjava.util.TimerはでなくアクションがEDT(イベント・ディスパッチ・スレッド)で実行されるjavax.swing.Timerを使用する必要がある

コメント

  • Timerがあいまいならjavax.swing.Timerで解決 -- 666
    • ですね。 -- terai

参考リンク

コメント