Comment 6 for bug 133103

Revision history for this message
David Nemeskey (nemeskeyd) wrote :

It is still an issue in 12.04. The following program:

import javax.swing.UIManager;

public class Test {
    public static void main(String[] args) {
        System.out.println("System: " + UIManager.getSystemLookAndFeelClassName());
        System.out.println("CrossPlatform: " + UIManager.getCrossPlatformLookAndFeelClassName());
        for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels())
            System.out.println("Installed: " + laf);
    }
}

prints

System: javax.swing.plaf.metal.MetalLookAndFeel
CrossPlatform: javax.swing.plaf.metal.MetalLookAndFeel
Installed: javax.swing.UIManager$LookAndFeelInfo[Metal javax.swing.plaf.metal.MetalLookAndFeel]
Installed: javax.swing.UIManager$LookAndFeelInfo[Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel]
Installed: javax.swing.UIManager$LookAndFeelInfo[CDE/Motif com.sun.java.swing.plaf.motif.MotifLookAndFeel]
Installed: javax.swing.UIManager$LookAndFeelInfo[GTK+ com.sun.java.swing.plaf.gtk.GTKLookAndFeel]

As you see, the system LaF is still Metal. Under Gnome, it is GTK.

I am aware that for KDE, a QtLookAndFeel would be the best match, but since no such thing exist, UIManager.getSystemLookAndFeelClassName() should default to GTK as the closest match (especially since by default, KDE sets the GTK style to QtCurve and the fonts to the ones used by KDE applications).