• 追加された行はこの色です。
  • 削除された行はこの色です。
#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
**概要 [#s45470f4]
javax.swing.Timer を使って文字列が点滅するJLabelを作成します。
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTIHWUuKaI/AAAAAAAAASQ/gfrtJsq0Xck/s800/BlinkLabel.png)

//http://terai.xrea.jp/swing/フォルダ/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
JLabel label = new JLabel();
Timer timer = new Timer(300, e -> {
  label.setText("".equals(label.getText()) ? "!!!Warning!!!" : "");
});
timer.start();
}}

**サンプルコード [#z5a5a046]
 javax.swing.Timer timer = new javax.swing.Timer(600, new ActionListener() {
   boolean flg = true;
   public void actionPerformed(ActionEvent e) {
     if(flg) setText("!警告!");
     else    setText("");
     flg = !flg;
   }
 });
 timer.start();
* 解説 [#explanation]
- `javax.swing.Timer`を使って`JLabel`にテキスト文字列と空文字列を交互に設定することで点滅を表現している
- `Swing`などの`GUI`コンポーネントを更新する場合、汎用的で多機能な`java.util.Timer`はでなくアクションが`EDT`(イベント・ディスパッチ・スレッド)で実行される`javax.swing.Timer`を使用する必要がある

-[[サンプルを起動>http://terai.xrea.jp/swing/blinklabel/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/blinklabel/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/blinklabel/src.zip]]
**解説 [#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