我已经看过关于此的其他一些帖子,但并没有真正理解它。制作一个java程序在电脑的后台运行
我制作了一个程序,它像一台服务器一样捕获屏幕的不同图片。现在,我希望程序能够在后台处于活动状态 - 就像出现在隐藏图标下的程序一样。不直接显示在底部任务栏的程序。 当我将它执行到jar文件时,是否需要在我的java程序中添加一些特定的代码?或者我需要以其他方式创建项目?
我希望这是足以解释 - 在此先感谢
我已经看过关于此的其他一些帖子,但并没有真正理解它。制作一个java程序在电脑的后台运行
我制作了一个程序,它像一台服务器一样捕获屏幕的不同图片。现在,我希望程序能够在后台处于活动状态 - 就像出现在隐藏图标下的程序一样。不直接显示在底部任务栏的程序。 当我将它执行到jar文件时,是否需要在我的java程序中添加一些特定的代码?或者我需要以其他方式创建项目?
我希望这是足以解释 - 在此先感谢
东西超级简单,我从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.");
}
}
刚刚得到任何图像,并把它添加到您的资源或你保持你的图片,并作出路径。
您可以通过在的Java Swing API组合使用java.awt.SystemTray
API实现这一目标。
从Oracle参见本文档:
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
}
你不需要特别的东西吧。创建一个可执行的jar就够了。 – davidxxx
“就像出现在隐藏图标下的程序一样。”它是什么 ??? – davidxxx
如果你想从控制台启动它,但不把它与一个关联,你可以简单地使用'javaw'而不是'java'。 –