Java Swing Mac OSX标题栏

时间:2012-01-05 16:39:13

标签: java macos swing titlebar

我正在开发OSX上的Java Swing应用程序,我希望它尽可能像Mac-Like一样出现。我已经取得了大部分想要的外观,但还有一件事我没有找到。

这是标题栏。许多原生OSX应用程序都有一个带有“工具栏按钮”的“高”标题栏和一个用于在右上角切换显示/隐藏“工具栏按钮”的小按钮(请参阅FeedForAll应用程序的图像,该应用程序是Java但使用SWT)

Top of FeedForAll application window showing Mac-Like title bar

有关如何实现这一目标的任何想法?任何帮助或指示将非常感激。

3 个答案:

答案 0 :(得分:2)

在Swing中,实际上并未使用本机OS组件。 Mac上默认的“Aqua”外观尝试尽可能地匹配本机外观,但它实际上只是用Java2D绘制内容。因此,例如,默认按钮的脉冲发光未实现。

您可以在窗口上设置一些客户端属性以影响其外观,但“标题工具栏”似乎不是一个选项:

http://developer.apple.com/library/mac/#technotes/tn2007/tn2196.html#//apple_ref/doc/uid/DTS10004439

一种选择是切换到使用Quaqua外观。我自己没有使用它,但据说它比Maca更忠实于Mac外观。它有一个属性,您可以设置它以获得所需的工具栏外观:

http://www.randelshofer.ch/quaqua/guide/client_properties.html#JToolBar

答案 1 :(得分:2)

您可以查看Mac Widgets for Java中提供的统一工具栏。

答案 2 :(得分:1)

很抱歉,但我不认为您可以使用Swing获取工具栏控制按钮。没有appl-esqe系统属性可以为您绘制它。尝试“apple.awt.brushMetalLook”属性,但据我记得它只有统一的工具栏和标题栏。 SWT似乎是您唯一的选择。

另外,我认为你不应该担心这个UI元素。从10.7(Lion)

以来,所有OS X用户界面元素都删除了这个按钮

使用Lion,大多数应用程序都在右上方显示全屏图标。 当使用Swing进行OS X编程时,我认为你应该在你的任务中的某个点画一条线,让它看起来绝对原生。

除此之外,我认为Mozilla客户端是使用Objective C / C ++开发的,而某些Java(可能是)适用于Mac。