High! I've conducted talks with Ubuntu devs: https://bugs.launchpad.net/ubuntu/+source/openjdk-7/+bug/1581835
Altogether: This behavior exists in latest openjdk. There are two ways to set LAF: 1) hardcoding using method UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()). In gnome DE this call makes LAF==GTK. In other DE==Metal (LAF depends on openjdk, not distro). 2) Do not set any LAF in program, use System default settings (config file swing.properties). Due to some bugs, in Ubuntu default is Metal, previously was GTK. The request is to make hardcoded default LAF==GTK for all Linux distributions, or at least for KDE, Xfce, MATE and Cinnamon. There are a lot of Java apps (both closed-source and open-source) which hardcode system LAF. And they look ugly on linux, the workaround is to use _JAVA_OPTIONS=-Dswing..., but every time I run any java app I see annoying "Picked up _java_options ..." What I see now is: when I do not hardcode LAF in my java app it looks Metal on Windows and GTK on Linux. When I hardcode I see Native LAF on Windows and Metal on Linux ¯\_(ツ)_/¯ Regards, Yan