2017-01-28 18 views
5

this answerを使用してWindows 10アクションセンターに通知ポップアップを作成しました。問題は、通知が5秒間そこにとどまり、一度消えるとアクションセンターから完全に削除されるということです。アクションセンターで、ユーザーが通知を却下するまで通知を保持させるにはどうすればよいですか?ここにコードがあります:ウィンドウを作成する10個の永続通知

import java.awt.*; 
import java.awt.TrayIcon.MessageType; 

import javax.swing.JOptionPane; 

public class Win10Notif { 

    public static void main(String[] args) throws AWTException, java.net.MalformedURLException { 

     if (SystemTray.isSupported()) { 
      Win10Notif td = new Win10Notif(); 
      td.displayTray(); 
     } else { 
      System.err.println("System tray not supported!"); 
     } 
    } 


    public void displayTray() throws AWTException, java.net.MalformedURLException { 
     //Obtain only one instance of the SystemTray object 
     SystemTray tray = SystemTray.getSystemTray(); 

     //If the icon is a file 
     Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); 
     //Alternative (if the icon is on the classpath): 
     //Image image = Toolkit.getToolkit().createImage(getClass().getResource("icon.png")); 
     TrayIcon trayIcon = new TrayIcon(image, "Tray Demo"); 
     //Let the system resizes the image if needed 
     trayIcon.setImageAutoSize(true); 
     //Set tooltip text for the tray icon 
     trayIcon.setToolTip("System tray icon demo"); 
     tray.add(trayIcon); 
     trayIcon.displayMessage("Hello, World", "notification demo", MessageType.INFO); 
    } 
} 

答えて

2

私はそれがWindows自体、またはJVMのネイティブ実装によって管理されていると思います。少なくとも、パブリックAPIは、通知のために画面上に特定の時間を設定するオプションを提供していません。

アクションセンターに固執する必要がある場合を除き、あなたはこれらのように、デスクトップ通知のための外部ライブラリを使用して検討してください。

  • JCarrierPigeon:それは小さなだし、それは速いです。それはTiming Frameworkライブラリに依存しています。それがもたらすAPIさえも小さいです。
  • JTelegraph:拡張子はJCarrierPigeonで、一部のストックアイコンとスタイルはそのままです。もちろん、Timing Frameworkライブラリにも依存しています。
  • JCommunique:より完全なオプションの1つで、より大きなフットプリントを意味します。少なくともこの1つは依存性がなく、実際には柔軟性があり、多くのユースケースのシナリオをカバーしています。
  • Twinkle:スタイリッシュですが軽量ではありません。ボックスの外にあるアイコン、アニメーション、その他のリソースを含みます。コードにはコンパイル時にいくつかの依存関係がありますが、配布可能な.jarにはすべてがバンドルされていると思います。非営利目的で無料です。
  • DS Desktop Notify:これは、軽量で、セットアップが簡単で、依存性がありません。 JOptionpane.showMessageDialog()と同じ方法で使用することも、手動で通知オブジェクトを作成する前に通知オブジェクトを作成およびカスタマイズすることもできます。色のテーマ、アイコン、画面上の時間、アクションなどのプロパティをカスタマイズすることができます。また、ストックテーマやアイコンも用意されています。

無料でこれらを取得して試すことができます。

関連する問題