См. Window.setIconImages(List)
. В зависимости от возможностей платформы в качестве значка окна можно использовать одно из нескольких изображений разных размеров. В потоке File Browser GUI есть пример. На этом изображении показана маленькая иконка, используемая для графического интерфейса пользователя, а большая - при использовании alt-tabbing между окнами.
Если изображение не квадрат, Windows будет подушечка его.
Java Web Start предлагает аналогичные варианты для значков нескольких размеров для использования в ярлыках на рабочем столе & элементов меню.
Re: картинки с именем:
fb-icon-16x16.png
fb-icon-32x32.png
..Это не имеет значения, на именах файлов или что угодно - окна просто выбирает значки на основе размера изображения?
Да, имена файлов были выбраны так, чтобы включать информацию о размере в интересах разработчиков. Мы могли бы назвать изображения:
icon-small.png
icon-medium.png
.. и он будет работать так же. JRE будет основывать свой выбор на фактическом размере изображения, измеренном после загрузки. Однако я настоятельно рекомендую добавить что-то вроде -16x16
в имена изображений изображений, чтобы сделать его явным. Размер «маленькой иконки» изменяется со временем & через устройства.
Что произойдет, если вы не представите несколько размеров?
Система JRE или система масштабирует одно изображение в соответствии с алгоритмом, который не находится под контролем разработчика. Например, как указано выше.
Если изображение не прямоугольное, Windows будет его заполнять.
У меня есть проигрыватель DukeBox, который пытается выбрать дорожку или обложку альбома, которая относится к треку, который играет. Он не только отображает изображение поверх звуковой дорожки, но также устанавливает его как значок (одиночный). Windows (по крайней мере) будет масштабироваться до размера, а панель с прозрачностью для любого не квадратного изображения. Windows даже обрабатывает PNG с частичной прозрачностью с апломбом.
OTOH, AFAIU OS X не отображает значки рам. По дизайнерскому решению. Я не знаю, приведет ли это к тому, что значок не появляется вообще. Вам нужен совет Mac. гуру для лучшей информации. на том.
Поскольку системы делают свои (не обязательно оптимальные) решения о том, как масштабировать значки, лучше всего взять как можно меньше шансов, & попытаться предоставить иконку нужного размера для каждой платформы. Вам повезло, если у них есть общий размер или 3.
Смотрите также:Sizes of frame icons used in Swing Q & А.
BTW - вы со ссылкой на Swing, или на основе AWT GUI, или что-то другое? –
Извините, я использую Swing! – Andy