Интеграция Mac OS X Java, не повреждая независимость от платформы

Я хочу, чтобы мое приложение интегрировало Mac OS X лучше. Я считал Интеграцию Mac OS X для Java, и я узнал, что должен импортировать com.apple.eawt.* и напишите некоторый дополнительный код. Но, если я делаю это, мое приложение не собирается работать над Windows из-за отсутствующей ссылки. Я мог сделать это с командой препроцессора, если я пишу в C, но это - Java. Как я могу сделать это, не разделяя файл кода на 2 ответвления?

5
задан Cenk Alti 10 January 2010 в 20:00
поделиться

5 ответов

9
ответ дан 18 December 2019 в 11:57
поделиться

Я использовал отражение, чтобы увидеть, был ли там класс com.apple.whatever, и если это так, я это вызвало.

работал очень хорошо, и не создает нарушение импорта.

3
ответ дан 18 December 2019 в 11:57
поделиться

Ранее я ранее заблокировал эти страницы, которые имеют хорошие советы по настройку качающихся приложений для OS X.

2
ответ дан 18 December 2019 в 11:57
поделиться

Вот несколько вещь, которую вы можете добавить в начале вашей функции «главной», которая будет иметь ваше приложение «Swing», выглядит более родным на MacOSX (работает с 10,6 тоже)

System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Your app name");
try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} 
catch (ClassNotFoundException ex) {}
catch (InstantiationException ex) {}
catch (IllegalAccessException ex) {}
catch (UnsupportedLookAndFeelException ex) {}

это будет иметь бар меню перейти в меню Mac MENU. Он установит ваше имя приложения в строке меню и установит ваше приложение и ощутить Mac OSX L & F.

Это не идеально, но это быстрое начало :)

1
ответ дан 18 December 2019 в 11:57
поделиться

Вы сможете взглянуть на свойства системы , связанные с ОС и выполняют только код, когда вы видите Mac OS X.

0
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: