---
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(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTIHWUuKaI/AAAAAAAAASQ/gfrtJsq0Xck/s800/BlinkLabel.png)

* サンプルコード [#sourcecode]
#code(link){{
JLabel label = new JLabel();
Timer timer = new Timer(300, e -> label.setText("".equals(label.getText()) ? "!!!Warning!!!" : ""));
Timer timer = new Timer(300, e -> {
  label.setText("".equals(label.getText()) ? "!!!Warning!!!" : "");
});
timer.start();
}}

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

新しい`java.util.Timer`は汎用的で多くの機能を持っていますが、`Swing`などの`GUI`コンポーネントを更新する場合はアクションが`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