• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JLabelの文字列を点滅させる
#navi(../)
*JLabelの文字列を点滅させる [#a07bded3]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-04-12~
更新日:&lastmod;
---
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`を作成します。

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

**概要 [#s45470f4]
javax.swing.Timer を使って文字列が点滅するJLabelを作成します。
* サンプルコード [#sourcecode]
#code(link){{
JLabel label = new JLabel();
Timer timer = new Timer(300, e -> {
  label.setText("".equals(label.getText()) ? "!!!Warning!!!" : "");
});
timer.start();
}}

#screenshot
* 解説 [#explanation]
`javax.swing.Timer`を使って`JLabel`にテキスト文字列と空文字列を交互に設定することで点滅を表現しています。

**サンプルコード [#z5a5a046]
#code{{
 final JLable label = new JLabel();
 Timer timer = new Timer(600, new ActionListener() {
   boolean flg = true;
   public void actionPerformed(ActionEvent e) {
     label.setText((flg)?"!警告!":"");
     flg = !flg;
   }
 });
 timer.start();
}}
-&jnlp;
-&jar;
-&zip;
- `Swing`などの`GUI`コンポーネントを更新する場合、汎用的で多機能な`java.util.Timer`はでなくアクションが`EDT`(イベント・ディスパッチ・スレッド)で実行される`javax.swing.Timer`を使用する必要がある

**解説 [#x67d5021]
javax.swing.Timerを使って、ラベルのテキスト文字列と空文字列を交互に表示しています。点滅の間隔や、文字列の色を変えたりして実験してみてください。
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/Timer.html Timer (Java Platform SE 8)]

//**参考リンク
**コメント [#ib66d1a8]
* コメント [#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