• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JLabelの文字列を点滅させる
#navi(../)
#tags(JLabel, Timer)
RIGHT:Posted by &author(aterai); at 2004-04-12
* JLabelの文字列を点滅させる [#a07bded3]
---
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
---
* 概要 [#summary]
`javax.swing.Timer`を使って文字列が点滅する`JLabel`を作成します。

#download
#ref(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTIHWUuKaI/AAAAAAAAASQ/gfrtJsq0Xck/s800/BlinkLabel.png)
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTIHWUuKaI/AAAAAAAAASQ/gfrtJsq0Xck/s800/BlinkLabel.png)

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

** 解説 [#x67d5021]
`javax.swing.Timer`を使って、ラベルのテキスト文字列と空文字列を交互に表示しています。点滅の間隔や、文字列の色を変えたりして実験してみてください。
* 解説 [#explanation]
`javax.swing.Timer`を使って`JLabel`にテキスト文字列と空文字列を交互に設定することで点滅を表現しています。

//**参考リンク
** コメント [#ib66d1a8]
- `Timer`があいまいなら`javax.swing.Timer`で解決 -- [[666]] &new{2007-06-22 (金) 11:51:42};
-- ですね。 -- [[aterai]] &new{2007-06-26 (火) 14:53:53};
- `Swing`などの`GUI`コンポーネントを更新する場合、汎用的で多機能な`java.util.Timer`はでなくアクションが`EDT`(イベント・ディスパッチ・スレッド)で実行される`javax.swing.Timer`を使用する必要がある

* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/Timer.html Timer (Java Platform SE 8)]

* コメント [#comment]
#comment
- `Timer`があいまいなら`javax.swing.Timer`で解決 -- &user(666); &new{2007-06-22 (金) 11:51:42};
-- ですね。 -- &user(aterai); &new{2007-06-26 (火) 14:53:53};

#comment