Java OS X Dock菜单

时间:2009-08-23 22:51:15

标签: java macos swing darwin

是否可以将项目添加到应用程序停靠栏菜单?

编辑:我想我错过了这个问题,我不是想找到一个方法来添加一个图标到码头。我正在寻找的是,当你右键点击itunes图标时你会在菜单上获得itunes控件(播放暂停等)我想知道如何在该菜单中添加自定义项目。

2 个答案:

答案 0 :(得分:5)

查看com.apple.eawt包。具体来说,在初始化应用时,请执行以下操作:

if (System.getProperty("os.name").startsWith("Mac OS X")) {
    // only do this setup if we know this is a Mac
    com.apple.eawt.Application macApp = com.apple.eawt.Application.getApplication();
    java.awt.PopupMenu menu = new java.awt.PopupMenu();
    // create your java.awt.MenuItem objects here
    // add to menu via java.awt.Menu#add(java.awt.MenuItem)
    macApp.setDockMenu(menu);
}

如果您将其作为跨平台应用程序分发,Apple会为com.apple.eawt包提供带有存根的Apple Java Extensions jar,因此代码将使用非Apple JDK进行编译。

答案 1 :(得分:2)

是(如果我理解了这个问题)。

如果您只想尝试在Dock中自定义Java图标,请参阅... http://developer.apple.com/documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html#//apple_ref/doc/uid/TP40001885-208447-TPXREF120

OSX Application Bundles部分下的第二点  “如果你添加一个合适的图标,它会在Dock中显示应用程序图标,清楚地标识你的应用程序。(否则,Dock中会出现一个默认的Java咖啡杯图标。)”

有一个示例应用程序(Java),用于处理停靠点图标的拖放事件,如下所示: http://www.devdaily.com/blog/post/jfc-swing/java-handle-drag-drop-events-mac-osx-dock-application-icon

如果您希望应用程序在安装到Dock时自动添加它的图标(可能是您的意思),您应该知道没有“官方苹果”方式来执行此操作,因为它在OS X上的BAD设计强制您的图标进入用户码头,通常不满意。我知道的所有MAC用户都会因此类行为立即删除您的应用程序。

尽管如此,您可以查看Apple网站上的系统管理指南,了解如何以编程方式完成。