Looks fine.
Can you please check the "thumb" in the scroll bar in text area as well(it is invisible in the current screenshots)


On 20.09.16 19:35, Alexandr Scherbatiy wrote:

  Thank you for the suggested code.

  Could you review the updated fix:
    http://cr.openjdk.java.net/~alexsch/8165594/webrev.04

  - the provided method is used to draw triangles in BasicArrowButton class
  - shift to one pixel right is added for the triangles drawing
  - AA rendering hint is set to draw a radio button

  Screenshots [1] and [2] shows difference between icons drawing before
and after the fix for scales 2x and 4x.

  [1]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-2x_03.png

  [2]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-4x_03.png


  Thanks,
  Alexandr.

On 9/20/2016 5:34 PM, Semyon Sadetsky wrote:
I would rewrite the method that draws triangle to simplify it:

    private void paintScaledTriangle(Graphics g, double x, double y,
double size,
                                     int direction, boolean isEnabled) {
        size = Math.max(size , 2);
        Path2D.Double path = new Path2D.Double();
        path.moveTo(-size, size/2);
        path.lineTo(size, size/2);
        path.lineTo(0, -size/2);
        path.closePath();
        AffineTransform affineTransform = new AffineTransform();
        affineTransform.rotate(Math.PI * (direction - 1) / 4 );
        path.transform(affineTransform);

        Graphics2D g2d = (Graphics2D) g;
        g2d.translate(x + size / 2. - 1, y + size / 2);
        Color oldColor = g.getColor();
        if (!isEnabled) {
            g2d.translate(1, 0);
            g2d.setColor(highlight);
            g2d.fill(path);
            g2d.translate(-1, 0);
        }
        g2d.setColor(isEnabled ? darkShadow : shadow);
        g2d.fill(path);
        g2d.translate( - x - size / 2. + 1, - y - size / 2);
        g2d.setColor(oldColor);
    }

I'm suggesting to make the paintTriangle() method accept floating
point coordinates to get more precise location and size for the scaled
version.

Optionally, 2D AA hints can be added to get better appearance for
scales 1.25, 1.5, 1.75.

--Semyon


On 9/20/2016 2:58 PM, Alexandr Scherbatiy wrote:

Hello,

Could you review the updated fix:
  http://cr.openjdk.java.net/~alexsch/8165594/webrev.02

 The code formatting issues are updated.

On 9/14/2016 8:02 PM, Semyon Sadetsky wrote:
Hi Alexander,

When I press the arrow button (for example in the "111" combo)
several times I can see artifacts. They are well seen in scale x4.
  I have filled an issue on it: JDK-8166368 JComboBox drawing has
artifacts with Windows Classic L&F on HiDPI display
    https://bugs.openjdk.java.net/browse/JDK-8166368

  Thanks,
  Alexandr.


--Semyon


On 9/14/2016 5:39 PM, Alexandr Scherbatiy wrote:

Hello,

Could you review the updated fix:
  http://cr.openjdk.java.net/~alexsch/8165594/webrev.01

 - HiDPI icons are only drawn for scaled graphics.

  The screenshots [1], [2], and [3] show difference between icons
drawing before and after the fix for scales 1x, 2x, and 4x.

  [1]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-1x_01.png

  [2]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-2x_01.png

  [3]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-4x_01.png


  Thanks,
  Alexandr.

On 9/8/2016 10:59 AM, Andrej Golovnin wrote:
Hi Alexandr,

   [1]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-1x.png

The icons do not look right to me. Take look at the top-left part of
the radio button. There is a white pixel between the shadow lines.
And
in the selected state there should be a black circle. But instead it
is a square. The check sign of the checkbox is too thin. And the
arrows of the combobox and the vertical scroll bar should have a
single pixel at the top/bottom side. But now they have two pixels.

It would be also nice to see a screen shot of the native Windows
components for comparison.

Personally when I would make changes like that, then my code would
look like this:

if (isNotHiDPI() || itMakesMoreSenseToUseTheOldCode()) {
    // use the old good code.
} else {
    // use the new code
}

Best regards,
Andrej Golovnin

   [2]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-2x.png

   [3]
http://cr.openjdk.java.net/~alexsch/8165594/screenshots/icons-windows-classic-4x.png


  Thanks,
  Alexandr.









--
Best regards, Sergey.

Reply via email to