JDK-8137098 : Total non-compliance to emerging high-DPI displays (on size 13.3 on laptop)
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 8u60
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_10
  • CPU: x86
  • Submitted: 2015-09-24
  • Updated: 2016-06-02
  • Resolved: 2016-06-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Duplicate :  
Relates :  
Description
FULL PRODUCT VERSION :
Latest as of 24th of September 2015

ADDITIONAL OS VERSION INFORMATION :
Windows 10, but this is (likely) not a Windows 10 related bug, but a general bug about the lack of proper handing of high DPI displays the JDK. 


EXTRA RELEVANT SYSTEM CONFIGURATION :
I am using a Samsung Ativ 9+ with a screen resolution of 3200x1800 on a screen size of 13.3 Importantly note that this bug will probably not be visible, or less critical, on a larger sized screen with this same resolution of 3200x1800. 

A DESCRIPTION OF THE PROBLEM :
I have uploaded a screen shot from the screen specified above on http://www.noachsw.com/technotip/bug-java-is-non-compliant-to-high-dpi-small-13-3-displays/.

From this, it is completely obvious, on a 13.3" screen size, that the JDK does not offer proper handing of high DPI displays. As it seems, the design is outdated in that it uses physically sized pixels in order to calculate font size, icon size, etc.

I make a humble reference to Andoid where PX vs DIP is fundamental. (Use always DIP, Device Independent Pixels).

Regarding the bug, here are some obvious examples, using the bottom line Windos task bar icon as size reference:

- menu text on the app SoundPimp is so small it is almost unreadable, a general problem for all Java based GUI (not only Swing).
- icons on NetBeans far too small
- Important: borders between windows in NetBeans are so narrow that they are almost impossible to select for dragging. 

Note that font size in NetBeans menu and edit areas has been up-sized using netbeans "settings" menu. Originally, the text is similar in size to the menu text of the SoundPimp app.

Note2: NetBeans developers, when I originally filed a bug in the NetBeans bug report system, commented with this, quote:

"To get this fixed you need to file a bug against JDK or vote for an existing one, you���re not the first person complaining about this. We can���t do much on NetBeans side until there���s some support for high DPI displays in the JDK."

In other words: Please consider for survival of Java as a good alternative that there is indeed an emergence of high-DPI displays on many types of devices, including but not limited to laptops. In 2015, it is clearly expected from a large company like Oracle that one is able to deliver modern platform suitable as IDE for modern GUI. 

The import challenge at hand is to put priority on developing pixel independency!


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Use a screen equal to the specification above. Do not use a 26# screen of resolution 3200x1800 because that would not demonstrate the error. Use a small screen with high dpi.


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
There is a workaround in Windows 10 (and8) in that it is possible to request to run any exe application in win7 compliant modus, causing a kind of digital (and thus blurred) zooming of the app into the correct size. However this result is blurred to the extent that the quality of the whole user experience becomes "embarrassing" in 2015. The whole thing looks like a solition from the early nineties. It is not a fix!

I add this final remark: One year ago as I purchased the Samsung Ativ 9+, many applications from many vendors had the same problem as Java JDK still has. However most of these applications has since then adapted to the emerging high-DPI displays by delivering revisions offering full compliance in the form of pixel independency. Please hurry up, put priority to this most severe bug.

It is a bug, it is not a wish for a possible future enhancement of JDK.