2016-08-17 46 views
4

我已經看過關於此的其他一些帖子,但並沒有真正理解它。製作一個java程序在電腦的後臺運行

我製作了一個程序,它像一臺服務器一樣捕獲屏幕的不同圖片。現在,我希望程序能夠在後臺處於活動狀態 - 就像出現在隱藏圖標下的程序一樣。不直接顯示在底部任務欄的程序。 當我將它執行到jar文件時,是否需要在我的java程序中添加一些特定的代碼?或者我需要以其他方式創建項目?

enter image description here

enter image description here

我希望這是足以解釋 - 在此先感謝

+0

你不需要特別的東西吧。創建一個可執行的jar就夠了。 – davidxxx

+0

「就像出現在隱藏圖標下的程序一樣。」它是什麼 ??? – davidxxx

+0

如果你想從控制檯啓動它,但不把它與一個關聯,你可以簡單地使用'javaw'而不是'java'。 –

回答

1

東西超級簡單,我從Here了。我所做的只是點擊添加一個退出。

代碼

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 
    } 
相關問題