2016-08-17 9 views
4

私はこれに関する他の投稿を見てきましたが、実際にはそれほど多くのことを理解していませんでした。コンピュータのバックグラウンドでJavaプログラムを実行する

私は、画面のさまざまな写真をキャプチャしながらサーバーのように動作するプログラムを作った。さて、私は隠されたアイコンの下に表示されるプログラムのように、バックグラウンドでアクティブになるだけのプログラムを望みます。一番下のタスクバーに直接表示されないプログラム。 jarファイルに実行するときに、Javaプログラムの中に特定のコードを追加する必要がありますか?または、私は何か他の方法でプロジェクトを作成する必要がありますか?

enter image description here

enter image description here

私は、これは十分に説明 だった願っています - あなたは、JavaのSwing APIと組み合わせてjava.awt.SystemTray APIを使用することによって、これを達成することができます事前に感謝

+0

。実行可能なjarを作成すれば十分です。 – davidxxx

+0

"は隠れたアイコンの下に表示されるプログラムのようです。"それは何ですか ??? – davidxxx

+0

コンソールから起動したいがそれをコンソールに関連付けるのではなく、単に 'java'の代わりに' javaw'を使うだけです。 –

答えて

1

何かを。私がしたことは、クリックして終了を追加することでした。

コード

public static void main (String [] args) { 
    if (!SystemTray.isSupported()) { 
     System.out.println("SystemTray is not supported"); 
     return; 
    } 
    Image image = Toolkit.getDefaultToolkit().getImage("MY/PATH/TO_IMAGE"); 

    final PopupMenu popup = new PopupMenu(); 
    final TrayIcon trayIcon = new TrayIcon(image, "MY PROGRAM NAME", popup); 
    final SystemTray tray = SystemTray.getSystemTray(); 

    MenuItem exitItem = new MenuItem("Exit"); 
    exitItem.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      System.exit(1); 
     } 
    }); 
    popup.add(exitItem); 

    trayIcon.setPopupMenu(popup); 

    try { 
     tray.add(trayIcon); 
    } catch (AWTException e) { 
     System.out.println("TrayIcon could not be added."); 
    } 
} 

だけで任意の画像を取得し、あなたのリソースに追加したり、あなたのイメージを保持し、それへのパスを作るどこ。

0

SystemTray.getSystemTray().add(trayIcon)ジョブを実行します。ここで

自分のアプリケーションのうちの一つの例:あなたはそれのために特別なものを必要としない

Image imageTrayIcon = Toolkit.getDefaultToolkit().createImage(YourClass.class.getResource("trayicon.png")); 
    final TrayIcon trayIcon = new TrayIcon(imageTrayIcon, "title"); 

    // optional : a listener 
    trayIcon.addMouseListener(new MouseAdapter() { 

     @Override 
     public void mouseClicked(MouseEvent e) { 

     if (e.getClickCount() == 2 && !e.isConsumed()) { 
      e.consume(); 
      // process double click 
      } 
     } 
    }); 
    // optional : adding a popup menu for the icon 
    trayIcon.setPopupMenu(popup); 

    // mandatory 
    try { 
     SystemTray.getSystemTray().add(trayIcon); 
    } 
    catch (AWTException e1) { 
     // process the exception 
    } 
関連する問題