我看过其他一些关于此事的帖子,但对此并不是很了解。
我制作了一个类似于服务器的程序,同时捕获不同的屏幕图片。现在,我希望程序能够在后台运行 - 就像隐藏图标下显示的程序一样。未直接显示在底部任务栏的程序。 当我将它执行到jar文件时,是否需要在我的java程序中添加一些特定代码?或者我是否需要以其他方式创建项目?
我希望这是足够的解释 - 提前致谢
答案 0 :(得分: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.");
}
}
只需获取任何图片并将其添加到您的资源或您保存图片的任何位置,然后找到它。
答案 1 :(得分:0)
您可以通过将java.awt.SystemTray
API与Java Swing API结合使用来实现此目的。
请参阅Oracle的此文档:
答案 2 :(得分: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
}