<AWT Dev> <Swing Dev> [10] Review request for 8182043: Access to Windows Large Icons

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Fri Sep 29 22:15:16 UTC 2017

On 9/29/17 12:39, Semyon Sadetsky wrote:
>>> Why 128 pixels? Windows shell usually provides icons up to 256 
>>> pixels, for example there are 256×256 icons for folders and generic 
>>> file type.
>> It is limitation of our implementation:
>> https://bugs.openjdk.java.net/browse/JDK-8151385
>> http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010777.html
> Sergey, it is not clear how those links are related to the icon size 
> returned by Windows?

It was a fix where the MAX_ICON_SIZE=128 was added.

>> As far as I understand the bug above, it is possible that OS returns 
>> some other size.
> You've probably didn't understand what Alexey meant. The Extract call 
> may return any size you request (it does scaling internally if there are 
> no suitable image) > But the bug above is about queering the fixed size
> (small or long) which size is determined by OS shell according to the 
> current scale. For those fixed sizes we use SHGetFileInfo not the Extract.

And every time we will try to make an icon it will be limited to 
128x128. But it is not critical.

The issue is that this api, as you said, will depends from some general 
"current scale". which is unrelated to the transform of the screen in java.

If the user will want to use FILE_ICON_LARGE, then to work properly he 
will need to use this code every time in the the paint():
Icon icon = getSystemIcon(file, FILE_ICON_LARGE);
Icon hicon = getSystemIcon(file, icon.getIconWidth()*currentScreenScale);

Best regards, Sergey.

More information about the awt-dev mailing list