我想从任务栏隐藏我的Java应用程序,并且只能在系统托盘中看到它。如果不清楚,这是一张照片。
我尝试像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 :(得分:2)
这将对您有所帮助。 https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/misc/TrayIconDemoProject/src/misc/TrayIconDemo.java。如果有帮助,请不要忘记点击评论左侧的右键。
答案 1 :(得分:0)
执行此setVisible(false)
,则任务栏中将没有任何内容