2012-01-05 1 views
4

Я работаю над приложением Java Swing на OSX, и я хочу, чтобы он отображался как Mac-Like, насколько это возможно. Я добился большей части желаемого взгляда, но одна вещь еще ускользает от меня.Java Swing Mac OSX Заголовок Bar

Это заголовок. Многие родные OSX-приложения имеют «высокий» заголовок с «кнопками на панели инструментов» и небольшую кнопку для переключения/закрытия «кнопок панели инструментов» в верхнем правом углу (см. Изображение приложения FeedForAll, которое является Java, но использует SWT) ,

Top of FeedForAll application window showing Mac-Like title bar

Любые идеи, как это может быть достигнуто? Любая помощь или указатели будут высоко оценены.

+0

Mmmmmmmm, и я думал, что это Java ... – Lyndon

ответ

2

В Swing исходные компоненты ОС на самом деле не используются. По умолчанию «Aqua» выглядит и ощущается на Mac, чтобы как можно скорее соответствовать внешнему виду, но на самом деле это просто рисование вещей с помощью Java2D. Так, например, пульсирующее свечение кнопки по умолчанию не реализовано.

Есть некоторые клиентские свойства, которые можно установить на окно, чтобы повлиять на его внешний вид, но «на панели инструментов в заголовке», кажется, не быть одним из вариантов:

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

Одним из вариантов было бы перейти к используя внешний вид Quaqua. Я не использовал его сам, но, возможно, он более верен Mac, чем Aqua. Он имеет свойство, которое вы можете установить, чтобы получить внешний вид панели инструментов вы хотите:

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

+0

Спасибо за это. Он уверен, что выглядит хорошо и на самом деле обращается к двум другим проблемам, которые у меня были. Единственная проблема теперь в том, будет ли она работать с WidowBuilder Pro в Eclipse Indigo. Я буду исследовать ... – Lyndon

+0

Фантастический! Он работает с WindowBuilder и требует только одну банку и несколько строк дополнительного кода. Маленькая кнопка переключения не существует, кроме панели заголовка и предохранителя ToolBar. Теперь у меня есть одно приложение для Mac-Like Java ... – Lyndon

+0

@ RussellZahniser _ ", но« панель инструментов заголовка », похоже, не является вариантом:« _ - Я думаю, что это может быть просто :) Попробуйте следующие строки: - 'JFrame frame = new JFrame();' -'JRootPane root = frame.getRootPane(); ' -'root.putClientProperty (" apple.awt.brushMetalLook ", Boolean.TRUE);' Кажется, работает для всех фреймов , но не для Dialogs.Я думаю, что Quaqua выглядит как старые версии _Mac_. – Igor

1

Извините, но я не думаю, что вы можете получить кнопки управления на панели инструментов с помощью Swing. Нет никаких свойств системы appl-esqe, которые бы нарисовали ее для вас. Попробуйте свойство apple.awt.brushMetalLook, но, насколько я помню, у него была единственная панель инструментов и заголовок. SWT кажется вашим единственным выбором.

Кроме того, я не думаю, что вам следует беспокоиться об этом элементе пользовательского интерфейса. Эта кнопка удалена со всех элементов интерфейса пользователя OS X с 10.7 (Lion)

С Lion большинство приложений имеют полноэкранный значок в правом верхнем углу. При использовании Swing для программирования на OS X, я думаю, вы должны нарисовать линию в какой-то момент вашего поиска, чтобы заставить ее выглядеть абсолютно родной.

Чтобы добавить к этому, я думаю, что клиенты Mozilla разработаны в Objective C/C++ и некоторые Java (возможно) для Mac.

2

Вы можете ознакомиться с панелью инструментов Unified Tool Bar, доступной в Mac Widgets for Java.

+2

Спасибо, но я в значительной степени привержен Swing сейчас ... – Lyndon

 Смежные вопросы

  • Нет связанных вопросов^_^