데스크탑 마스코트를 만들어 보자. 【앱의 종료편】
변경 내역
2020/2/26
2021/3/28
처음에
마지막으로 마스코트 디스플레이를 만들었지만,
현재는 어플리케이션의 개시를 행한 후에 종료하는 수단이 없습니다.
데스크톱에 상주하는 응용 프로그램이 될 것을 고려하면,
시스템 트레이에 아이콘을 추가하여 앱을 종료할 수 있습니다.
시스템 트레이에 아이콘 추가
시스템 트레이에 추가하기 위한 클래스를 작성해 갑니다.
JDSystemTray.java
public final class JDSystemTray {
// 中身はまだ
}
시스템 트레이에 아이콘을 추가하는 과정은 다음과 같습니다.
아이콘 추가 시 시스템 트레이가 지원되는지 확인한 후 추가합니다.
JDSystemTray.java
/** システムトレイのアイコン場所 プロジェクト配下からディレクトリを作成しておく*/
private static final String PATH = "/resource/icon/JDSystemTrayIcon.png";
public static void addSystemTray() {
try {
// システムアイコンがサポートされている場合
if (SystemTray.isSupported()) {
// アイコンの生成
var img = ImageIO.read(JDSystemTray.class.getResource(PATH));
// システムトレイの生成
var trayIcon = new TrayIcon(img);
// 画像の自動サイズ調整をする
trayIcon.setImageAutoSize(true);
// ツールチップの設定
trayIcon.setToolTip("デスクトップマスコットシステム");
// システムトレイの取得
var systemTray = SystemTray.getSystemTray();
// システムトレイに追加
systemTray.add(trayIcon);
}
} catch(Throwable e) {
// 何かしらの処理
}
}
이제 시스템 트레이에 아이콘을 추가할 수 있습니다.
단지, 이제는 추가한 것만으로 클릭하겠지만 뭐하자
반응하지 않는 입상이므로 마우스 오른쪽 버튼을 클릭하여 메뉴를 시작할 수 있습니다.
우선, 메뉴를 작성합니다.
메뉴가 시스템 트레이 아이콘의 이벤트로 추가되므로,
인수로 시스템 트레이의 아이콘을 받도록 합니다.
JDSystemTray.java
private static void crateMenuBer(TrayIcon trayIcon) {
// ポップアップメニューの作成
var popup = new PopupMenu();
// メニューのアイテム
var exit = new MenuItem("アプリケーションの終了");
// メニューのクリックイベントの定義
exit.addActionListener(e -> { System.exit(0); });
// 作成したメニューアイテムを追加
popup.add(exit);
// アイコンに作成したポップアップメニューに追加
trayIcon.setPopupMenu(popup);
}
이제 마우스 오른쪽 버튼을 클릭하면 메뉴가 시작됩니다.
addSystemTray 메서드에 crateMenuBer 메서드를 호출하는 처리를 추가하는 것을 잊지 마십시오.
테스트 코드 작성
이제 테스트 코드를 만들어 움직임을 확인합시다.
시스템 트레이에 사용하는 아이콘은 일러스트나 씨의 아이콘을 테스트용으로 사용했습니다.
시스템 트레이에 추가하기 위한 클래스를 작성해 갑니다.
JDSystemTray.java
public final class JDSystemTray {
// 中身はまだ
}
시스템 트레이에 아이콘을 추가하는 과정은 다음과 같습니다.
아이콘 추가 시 시스템 트레이가 지원되는지 확인한 후 추가합니다.
JDSystemTray.java
/** システムトレイのアイコン場所 プロジェクト配下からディレクトリを作成しておく*/
private static final String PATH = "/resource/icon/JDSystemTrayIcon.png";
public static void addSystemTray() {
try {
// システムアイコンがサポートされている場合
if (SystemTray.isSupported()) {
// アイコンの生成
var img = ImageIO.read(JDSystemTray.class.getResource(PATH));
// システムトレイの生成
var trayIcon = new TrayIcon(img);
// 画像の自動サイズ調整をする
trayIcon.setImageAutoSize(true);
// ツールチップの設定
trayIcon.setToolTip("デスクトップマスコットシステム");
// システムトレイの取得
var systemTray = SystemTray.getSystemTray();
// システムトレイに追加
systemTray.add(trayIcon);
}
} catch(Throwable e) {
// 何かしらの処理
}
}
이제 시스템 트레이에 아이콘을 추가할 수 있습니다.
단지, 이제는 추가한 것만으로 클릭하겠지만 뭐하자
반응하지 않는 입상이므로 마우스 오른쪽 버튼을 클릭하여 메뉴를 시작할 수 있습니다.
우선, 메뉴를 작성합니다.
메뉴가 시스템 트레이 아이콘의 이벤트로 추가되므로,
인수로 시스템 트레이의 아이콘을 받도록 합니다.
JDSystemTray.java
private static void crateMenuBer(TrayIcon trayIcon) {
// ポップアップメニューの作成
var popup = new PopupMenu();
// メニューのアイテム
var exit = new MenuItem("アプリケーションの終了");
// メニューのクリックイベントの定義
exit.addActionListener(e -> { System.exit(0); });
// 作成したメニューアイテムを追加
popup.add(exit);
// アイコンに作成したポップアップメニューに追加
trayIcon.setPopupMenu(popup);
}
이제 마우스 오른쪽 버튼을 클릭하면 메뉴가 시작됩니다.
addSystemTray 메서드에 crateMenuBer 메서드를 호출하는 처리를 추가하는 것을 잊지 마십시오.
테스트 코드 작성
이제 테스트 코드를 만들어 움직임을 확인합시다.
시스템 트레이에 사용하는 아이콘은 일러스트나 씨의 아이콘을 테스트용으로 사용했습니다.
JDSystemTrayTest.java
public class JDSystemTrayTest {
public static void main(String[] args) {
JDSystemTray.addSystemTray();
}
}
↓오른쪽 클릭↓
음.
끝에
이번에는 마스코트 애플리케이션 종료 방법에 대해 구현했습니다.
다음은 마우스 조작으로 던지거나 할 수 있도록 해 보려고합니다.
링크
Reference
이 문제에 관하여(데스크탑 마스코트를 만들어 보자. 【앱의 종료편】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/urado/items/d94382e5fc53fbcc6d85텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)