2016-05-09 2 views
1

私はJavaアプリケーションをタスクバーから隠し、それをシステムトレイでのみ表示したいと考えています。これが不明な場合の写真です。システムトレイにJavaアプリケーションを表示しない

image

私はthisのようにそれを実装しようとしたとシステムトレイにアイコンが表示されなかったが、それはまだ、タスクバー上のアプリケーションを示しています。

は、ここで私はちょうどタスクバーからアプリケーションを非表示にする方法を見つける必要があるFrameクラス

public class Widget extends JFrame { 
private static final long serialVersionUID = -197136854089859547L; 
private JPanel mainPanel; 
private WidgetProperties properties; 
private Makedir mkdir; 
private ArrayList<Item> items; 
private Image icon; 
private TrayIcon trayIcon; 
private SystemTray tray; 

public Widget() { 
    super(""); 
    this.setTray(); 
    this.setUndecorated(true); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

public void setTray() { 
    tray = SystemTray.getSystemTray(); 
    PopupMenu menu = new PopupMenu(); 
    MenuItem show = new MenuItem("Show"); 
    MenuItem exit = new MenuItem("Exit"); 
    show.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent arg0) { 
      setState(Frame.NORMAL); 
     } 
    }); 
    exit.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent arg0) { 
      close(); 
     } 
    }); 
    menu.add(show); 
    menu.addSeparator(); 
    menu.add(exit); 
    trayIcon = new TrayIcon(icon, "EasyStart", menu); 
    trayIcon.setImageAutoSize(true); 
    try 

    { 
     tray.add(trayIcon); 

    } catch (AWTException e) { 
     e.printStackTrace(); 
    } 
} 

public void setup() { 
    this.resize(); 
    this.setVisible(true); 
} 

public void resize() { 
    this.setResizable(true); 
    this.setShape(properties.getShape()); 
    this.setSize(properties.getSize()); 
    this.setResizable(false); 
} 

public void close() { 
    System.exit(0); 
} 

}

の一部です。

+0

ウィンドウがある場合は、タスクバーに表示されます。タスクバーは実際にはウィンドウのリストです – Natecat

答えて

関連する問題