0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

休憩催促通知機能を作ってみた

Posted at

休憩催促通知

・はじめに

日常生活の中で仕事や家で長時間PCと睨めっこをしている人は多いだろう。長時間画面を見続けると目も疲れるし体もずっと固定されたままなので疲労が溜まり生活に支障が出てしまう。そこで私は長時間使用し続けると休憩の催促がくる機能を作成した。

実行画面ショット

chacha.png

・構成

このプロジェクトは2つのJavaファイルから構成される。

  1. sendNotification.java: 通知を表示するためのクラス。
  2. timerPreference.java: 指定された時間後に通知表示を発火するクラス。

・ファイル説明

sendNotification.java

主な機能

  • notificationDisplay():

    • システムトレイにアイコンを表示し、メッセージを通知。
    • メッセージには、休憩を促すテキストとアイコンを盛り込んだ。
    • アイコン画像は、プロジェクトのルートディレクトリにある P1180131.jpg 私の愛犬である。
  • displayImageNotification():

    • 画像付きのポップアップ通知を表示。
    • ポップアップには、アイコンとメッセージが含まれる。

ソースコード

sendNotification.java
import java.awt.*;
import javax.swing.*;

public class sendNotification {
    // 通知を表示するための処理
    public static void notificationDisplay() {
        // SystemTrayのインスタンスを取得
        SystemTray tray = SystemTray.getSystemTray();
        // アイコンの画像を設定
        Image image = Toolkit.getDefaultToolkit().getImage("P1180131.jpg");
        // トレイアイコンを生成(リマインダーとして)
        TrayIcon trayIcon = new TrayIcon(image, "リマインダー");
        trayIcon.setImageAutoSize(true); // アイコンを自動的にリサイズ
        // システムトレイにトレイアイコンを追加
        try {
            tray.add(trayIcon);
        } catch (AWTException e) {
            System.err.println("トレイアイコンの追加に失敗しました。");
            return;
        }
        // 通知の表示
        trayIcon.displayMessage("休憩の時間です!", "画面の見過ぎですよあなた。", TrayIcon.MessageType.INFO);
        // 画像付きの通知を別のウィンドウで表示
        displayImageNotification();
        System.exit(0);
        
    }

    // 画像付きの通知を表示するメソッド
    public static void displayImageNotification() {
        // 画像を含むラベルを作成
        ImageIcon icon = new ImageIcon("P1180131.jpg"); // 画像を設定
        JLabel label = new JLabel("休憩の時間です!", icon, JLabel.CENTER); // 画像とテキストを設定

        //画像付きのメッセージを表示
        JOptionPane.showMessageDialog(null, label, "休憩催促通知", JOptionPane.INFORMATION_MESSAGE);
    }
    public static void main(String[] args) {
        // 通知を表示するメソッド呼び出し
        notificationDisplay();
    }
}

timerPreference.java

このクラスは、指定された時間(タイマー)に通知を表示するためのタイマーを実装。

  • main():
    • 1時間(3600000秒)後に sendNotification.notificationDisplay() メソッドを呼び出す。
timerPreference.java
import java.util.Timer;
import java.util.TimerTask;;

public class timerPreference {
    public static void main(String[] args) {
        Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                sendNotification.notificationDisplay();
            }
        };
        timer.schedule(task, 3600000);
    }
    
}

・使用方法

  1. プロジェクトディレクトリに自分の好きな画像をセット。

実行コマンド

javac sendNotification.java
timerPreference.java

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?