新しい温度計にLEDをつけるのをやめる

その代わりにPCのシステムトレイでアイコンの表示を試みる。
しかし、ウィンドウやシステムトレイをプログラムで扱うのは慣れていない。

2つのサイトを参考にして作る。 これらのサイトの説明はわかりやすくて本当にありがたい…

Eclipseにダメ出しされながら、エラーが出ないようにする。
しかしEclipseのdebugでは動くのに、Exportしたjarファイルだと動かない。

原因は
Image image = ImageIO.read(new File("icon.png"));
TrayIcon icon = new TrayIcon(image);
にあった。
jarで固めたときは画像ファイルはリソースとして扱われるので
Image image = new ImageIcon(WatchTemperature.class.getResource("icon.png")).getImage();
TrayIcon icon = new TrayIcon(image);
とするのが正しい。(WatchTemperatureは今回作ったクラス名)

EclipseでExportしたjarファイルをコマンドラインで
java -jar WatchTemperature.jar
と入力して動かすと、システムトレイに信号機アイコンが表示される。
温度によって信号が変わる。
やりたかったGG信号は22℃近辺で表示される。
また、アイコンをホバーすると測定時刻と温度をテキストで表示する。

作って満足したw
📁./Documents/2013-06-19-23-17-30.zip
2013/06/20 00:03
タグ