> In fact, Windows 10 renders titled border flat: one grey line instead of 
> etched border that was used in previous versions. Shall we update Swing's 
> Windows L&F?

In the Windows L&F, the following borders all display badly on 150% HiDPI 
scaling, and would benefit from a fix:

TextField.border, PasswordField.border, FormattedTextField.border, 
ScrollPane.border, PopupMenu.border, Menu.border, ToolTip.border, as well as 
the borders for JSpinner and JComboBox.

I once did some work to fix these 150% HiDPI scaling border issues on the 
NetBeans IDE; see https://github.com/apache/netbeans/pull/1777 and 
https://github.com/apache/netbeans/pull/2965 and 
https://github.com/apache/netbeans/blob/master/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/windows8/Windows8LFCustoms.java

The issue https://bugs.openjdk.java.net/browse/JDK-8241561 is also similar.

Just passing by... thanks for your work on maintaining Swing!

-- Eirik Bakke
(Committer on the Apache NetBeans project.)

-----Original Message-----
From: client-libs-dev <client-libs-dev-r...@openjdk.java.net> On Behalf Of 
Alexey Ivanov
Sent: Wednesday, March 30, 2022 2:18 PM
To: client-libs-dev@openjdk.java.net
Subject: Re: RFR: 8279614: The left line of the TitledBorder is not painted on 
150 scale factor [v7]

On Wed, 30 Mar 2022 16:59:50 GMT, Phil Race <p...@openjdk.org> wrote:

> Well the test is setting the Windows L&F, and evaluating its rendering. Which 
> seems to me to make it windows-specific, as written. The test would would 
> need to run through all the L&Fs if it is actually valid to do so.

Right, the bug was reported on Windows. The Windows L&F uses `EtchedBorder` for 
`TitledBorder` whereas other L&F don't. From this point of view, the bug is 
Windows-specific.

Yet the fix is in the shared code, in the `javax.swing.border.EtchedBorder` 
class which is not Look-and-Feel specific. I'm sure the problem can be 
reproduced if `EtchedBorder` is used directly rather than via `TitledBorder`. 
Yet you wouldn't see the bug on Linux and macOS because these two platforms 
support only integer scales, but the issue occurs with fractional scales only.

If the test uses `EtchedBorder` directly, there'll be no need to iterate L&Fs. 
The test sets `EtchedBorder` border to a panel, the panel renders the border.

* In fact, Windows 10 renders titled border flat: one grey line instead of 
etched border that was used in previous versions. Shall we update Swing's 
Windows L&F?

-------------

PR: https://git.openjdk.java.net/jdk/pull/7449

Reply via email to