gpt4 book ai didi

java - 在 Java 中创建 NSStatusItem/Menubar 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:21 25 4
gpt4 key购买 nike

我试图在 Java 中模拟 Objective C 的 NSStatusItem 功能。也就是说,我正在尝试编写一个 Java 应用程序,它将位于 Mac 的菜单栏中,like this . Here's a link到 Apple 关于 StatusBar 的文档。

有什么方法可以在 Java 中做到这一点?

最佳答案

使用java.awt.SystemTray .我已经确认它适用于 OS X Lion。根据this question ,也可以使用 SWT。

例子:

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.MalformedURLException;
import java.net.URL;

public class MenuBarIconTest {
public static void main(String[] args) throws MalformedURLException {
TrayIcon trayIcon = null;
if (SystemTray.isSupported()) {
// get the SystemTray instance
SystemTray tray = SystemTray.getSystemTray();
// load an image
Image image = Toolkit.getDefaultToolkit().getImage(new URL("http://cdn1.iconfinder.com/data/icons/Hypic_Icon_Pack_by_shlyapnikova/16/forum_16.png"));
// create a action listener to listen for default action executed on the tray icon
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("action");
// execute default action of the application
// ...
}
};
// create a popup menu
PopupMenu popup = new PopupMenu();
// create menu item for the default action
MenuItem defaultItem = new MenuItem("Do the action");
defaultItem.addActionListener(listener);
popup.add(defaultItem);
/// ... add other items
// construct a TrayIcon
trayIcon = new TrayIcon(image, "Tray Demo", popup);
// set the TrayIcon properties
trayIcon.addActionListener(listener);
// ...
// add the tray image
try {
tray.add(trayIcon);
} catch (AWTException e) {
System.err.println(e);
}
// ...
} else {
// disable tray option in your application or
// perform other actions
//...
}
// ...
// some time later
// the application state has changed - update the image
if (trayIcon != null) {
//trayIcon.setImage(updatedImage);
}

}
}

关于java - 在 Java 中创建 NSStatusItem/Menubar 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com