Java Swing Mac OSX 标题栏

标签 java macos swing titlebar

我正在 OSX 上开发 Java Swing 应用程序,我希望它看起来尽可能像 Mac。我已经实现了大部分所需的外观,但仍有一件事让我难以理解。

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

Top of FeedForAll application window showing Mac-Like title bar

有什么想法可以实现吗?任何帮助或指示将不胜感激。

最佳答案

在 Swing 中,实际上并没有使用 native 操作系统组件。 Mac 上默认的“Aqua”外观试图尽可能匹配本地外观,但它实际上只是用 Java2D 绘制东西。因此,例如,未实现默认按钮的脉冲发光。

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

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

一种选择是改用 Quaqua 外观。我自己没有用过它,但据说它比 Aqua 更忠实于 Mac 的外观。它有一个属性,您可以设置它以获得您想要的工具栏外观:

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

关于Java Swing Mac OSX 标题栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8746148/

相关文章:

java - 从 JTable 中删除显示的数据

java - 使用 DEROctetString 与纯扩展

c++ - clang (MacOS 32/64) : disable stack frames in some functions

ios - 选择器 valueWithCGRect 没有已知的类方法

java - 在扩展小程序的类中哪里创建 Swing Timer

java - 带有自签名证书的 egit,https

java - @JsonInclude(JsonInclude.Include.NON_NULL 不适用于 double

macos - 如何将 TLD 添加到 Safari 中的搜索异常(exception)

java - 如何比较 Jtextfield 中的 2 个整数

java - Jtable 未加载