JDK-8038113 : [macosx] JTree icon is not rendered in high resolution on Retina
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 7,8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • Submitted: 2014-03-21
  • Updated: 2014-07-29
  • Resolved: 2014-04-10
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.
8u20Fixed 9 b12Fixed
Related Reports
Relates :  
See the http://mail.openjdk.java.net/pipermail/macosx-port-dev/2014-March/006516.html

Unfortunately, at least one icon was (partially) missed - the expand tree control (that little triangle).

It is rendered in HiDPI, when you click on it, but in its regular appearance it is low res.

The problem occurs on OS X 10.9.2 with

java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b05)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b05, mixed mode)



Source code to illustrate the issue - a plain vanilla JTree. Just play with the expansion triangles.
import javax.swing.*;
import java.awt.*;

public class TreeExpanders {

    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        final JTree tree = new JTree();
        frame.getContentPane().setLayout(new BorderLayout());
        frame.getContentPane().add(tree, BorderLayout.CENTER);
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                frame.setBounds(200, 200, 200, 200);