Java Swing GUIs на Mac OS X

вы когда-нибудь пытались использовать Swing только для изменения курсов, потому что он просто не мог сделать то, что вы хотели?

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

просто с моей головы, некоторые возможности:

  • проблемы разработки пользовательских компонентов, которые выглядели "правильно"
  • плохие взаимодействия с родными приложениями и виджетами
  • проблемы с производительностью (невосприимчивость, проблемы с перекраской)
  • неспособность имитировать собственное поведение (например, док-взаимодействие)

5 ответов


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

минимум, необходимый, чтобы даже надеяться пройти в качестве приложения для Mac:

  • пакета .банка в a .app
  • установите для L&F значение по умолчанию
  • установить apple.ливанские вооруженные силы.свойство useScreenMenuBar для истинный
    • должен сделать это перед любым UI-кодом

док-взаимодействие отсутствует в стандартной Java. Вам придется использовать мост Cocoa-Java от Apple, который больше не поддерживается. Я понятия не имею, насколько сговорчив JNI на OS X, которая является единственной реальной альтернативой.

производительность не должна быть проблемой. Drag & Drop, вероятно, так же волосат на OS X, как и везде.

в основном, если вы явно нацелены на OS X вам лучше всего использовать Objective-C. его далеко не невозможно построить приложение на OS X с помощью Java & Swing, но его много работы, чтобы сделать его "родным".


Как сказал Кевин и Джон, вы должны попробовать Objective-C, Cocoa и XCode, если вы нацелены только на пользователей Mac. The инструменты разработчика для Mac свободно доступен.

Если вы хотите (или должны) использовать Java и Swing, вы можете использовать некоторые библиотеки для создания GUI, который хорошо выглядит на Macs:

для развертывания вашего приложения, вы должны прочитать JarBundler документы.

однако в этом случае взаимодействие с док-станцией и собственными приложениями очень ограничено.

некоторые другие хорошие ссылки:


@Kevin++

использование какао, вероятно, лучше

  • если вы хотите, чтобы он выглядел точно так же, как родные приложения
  • если вы нацелены только на Mac

Если вы собираетесь распространять свои приложения для Windows, Linux и т. д. Свинг-достойный выбор. Это лучше, но, как и в любом инструментарии есть еще проблемы. Вы никогда не получите по-настоящему родной вид и чувство с ним, то же самое касается подобных UI toolkits, которые утверждают, что "межплатформенный."

руководство Apple по разработке Java можно найти здесь.


Swing-хороший способ пойти, или вы можете пойти SWT, или оба!

но в любом случае, используйте их поверх платформы RCP. (либо с Eclipse, либо с Netbeans).

взгляните на это:http://www.adam-bien.com/roller/abien/entry/eclipse_rcp_vs_netbeans_rcp

Марко


Macify могу помочь.