Строка заголовка Java Swing Mac OSX

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

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

В верхней части окна приложения FeedForAll отображается строка заголовка Mac-Like

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

3 ответа

Решение

В Swing нативные компоненты ОС фактически не используются. Внешний вид "Аква" по умолчанию на Mac старается максимально приблизиться к нативному внешнему виду, но на самом деле он просто рисует вещи с помощью Java2D. Так, например, импульсное свечение кнопки по умолчанию не реализовано.

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

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

Один из вариантов - переключиться на использование Quaqua. Я сам этим не пользовался, но якобы он выглядит даже более точно, как Аква. У него есть свойство, которое вы можете установить, чтобы получить желаемый вид панели инструментов:

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

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

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

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

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

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

Другие вопросы по тегам