1
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

Javaでシステムトレイに常駐するプログラムを作成する機会があったので、サンプルコードを紹介します。

サンプルコードの概要

  • システムトレイに常駐するプログラムを作成する
  • アイコンには指定のpngファイルを利用する
  • アイコンを右クリックするとポップアップメニューが表示される
    • Helloメニューを押下すると、通知を表示する
    • Exitメニューを押下すると、プログラムが終了し、システムトレイからアイコンが削除される

サンプルコード

Main.java
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.TrayIcon.MessageType;
import java.io.IOException;
import java.io.InputStream;

import javax.imageio.ImageIO;

public class Main {
    public static void main(String[] args) {
        try (InputStream is = Main.class.getResourceAsStream("icon.png")) {
            TrayIcon trayIcon = new TrayIcon(ImageIO.read(is), "Sample App");
            trayIcon.setImageAutoSize(true);
            
            MenuItem menuItem1 = new MenuItem("Hello");
            menuItem1.addActionListener(e -> {
                trayIcon.displayMessage("Press Hello Button", "Hello World!", MessageType.INFO);
            });
            
            MenuItem menuItem2 = new MenuItem("Exit");
            menuItem2.addActionListener(e -> {
                System.exit(0);
            });
            
            PopupMenu popupMenu = new PopupMenu();
            popupMenu.add(menuItem1);
            popupMenu.add(menuItem2);
            trayIcon.setPopupMenu(popupMenu);
            SystemTray.getSystemTray().add(trayIcon);
        } catch (IOException | AWTException e) {
            e.printStackTrace();
        }
        
    }
}

実行例

このサンプルコードを実行すると、システムトレイにアイコンが表示されます。

image.png

アイコンを右クリックすると、ポップアップメニューが表示されます。

image.png

Helloメニューを押下すると、通知が表示されます。

image.png

Exitメニューを押下すると、プログラムが終了します。

image.png

環境情報

D:\>java -version
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode, sharing)

D:\>javac -version
javac 21.0.3

D:\>ver

Microsoft Windows [Version 10.0.22631.3880]
1
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
1
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?