2011-05-15 5 views
19

Как я могу изменить значок док-станции программы в Java на платформе Macintosh? Я слышал об использовании Java-библиотеки Apple (которая предоставляет некоторую дополнительную поддержку на платформе Mac), но мне еще предстоит найти некоторые фактические примеры.Как изменить значок док-станции программы Java?

+1

Я Win человек. Но из того, что я вижу, Dock на Mac является эквивалентом Taskbar on Win. Поэтому мне интересно, может быть, просто называть 'setIconImage (новый ImageIcon (путь/to/icon)) getImage());' для вашего JFrame может сортировать вашу проблему? – Boro

ответ

17

Apple eAWT предоставляет класс Application, который позволяет изменить значок док-станции приложения.

import com.apple.eawt.Application; 
... 
Application application = Application.getApplication(); 
Image image = Toolkit.getDefaultToolkit().getImage("icon.png"); 
application.setDockIconImage(image); 
+0

Да, но класс устарел. –

+0

Я думаю, что только публичный конструктор и некоторые методы устарели, а не весь класс. –

+0

Хорошо, я попробую. Благодаря! –

22

Хотя я не уверен, как изменить его во время выполнения, вы можете установить в командной строке значок Dock с помощью опции -Xdock:icon, как:

>java -Xdock:icon=/path/myIcon.png myApp 

This article имеет много полезной информации мало о привлечении java apps на Mac, и вам может быть интересно узнать об утилитах и ​​инструментах для Mac, перечисленных here, а также о вариантах развертывания, перечисленных в списке here (последняя ссылка особенно полезна, если вы хотите перейти по пути Java Webstart).

+0

Я видел, что этот код используется много раз. Что делать, если я хочу, чтобы программа работала на нескольких платформах ... не вызовет ли это проблемы, если я должен запустить файл в Windows или Linux? –

+3

@Martin Tuskevicius Да, это будет работать только для Mac, поэтому вы захотите иметь отдельные сценарии/дистрибутивы для операционных систем (например, для Mac, у вас будет такая командная строка, связанная в applescript). Трудно удовлетворить потребности каждой операционной системы, оставаясь при этом нерентабельным. –

+0

Вы лично пытались сделать подход библиотеки Apple? Я загрузил его в какой-то момент, и я сделал приложение.setDockIcon (Image), но тогда значок Dock был просто пустой областью. –

8

Если вы используете Eclipse, вы можете экспортировать проект в Mac OS X Application Bundle и указать .icns файл для использования в качестве иконки.
В Eclipse откройте «Файл»> «Экспорт» и выберите «Пакет приложений Mac OS X» в каталоге «Другой».

Нажмите следующую кнопку.
Затем вам будет представлено «Меню экспорта приложения».
Последняя опция в этом меню - «Значок». Здесь вы указываете файл .icns для использования в качестве значка док-станции.

Picture of the 2 Eclipse Export Menus

Что касается создания файла .icns обеспокоен, вы можете использовать Icon Composer от Apple, чтобы создать .icns файл из файла образа. Here is a good tutorial on making mac icons.

+0

@hcix Является ли эта опция доступна только на версии Mac OS X в Eclipse? Я установил Eclipse для Windows, и нет пакета приложений для Mac OS X. – Igor

+0

@Igor Согласно одному из ответов на [этот вопрос] (http://stackoverflow.com/questions/2799646/deploy-java-application-on-macosx-from-a-windows-system) установка пакета Delta Delta позволит вам экспортировать ваше приложение на любую целевую платформу. – hcix

+0

@hcix Вы использовали дельта-пакет раньше? Может ли он создать файл .app для Mac и файл установки .exe для Windows? – Igor

1

Если у вас установлен XCode, вы можете использовать JarBundler для создания приложения Mac с помощью Jar-файла. Если у вас нет XCode, вы можете использовать этот JarBundler:

http://sourceforge.net/projects/jarbundler/

В процессе создания пакетирования, вы можете выбрать иконку в расширении .icns. Это будет ваш значок док-станции.

+0

Этот проект больше не существует – Besi

6

Для Microsoft Windows

setIconImage(new ImageIcon("Football.png").getImage()); 

для Mac OS X

import com.apple.eawt.Application; 
Application.getApplication().setDockIconImage(new ImageIcon("Football.png").getImage()); 
+0

О том, может ли приложение работать на Mac и Windows? Как вы сделаете его совместимым для обоих? –

+0

, тогда вам нужно условие для проверки ОС. –

+0

Проблема заключается в том, что вы не можете импортировать 'com.apple.eawt.Application;' на компьютер с Windows, так как он специфичен для Mac. В итоге я решил использовать решение, основанное на [этом ответе] (http://stackoverflow.com/a/13400962/4660897), но это решение кажется очень запутанным. –

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