Although Eclipse drives users up the wall in every other way, it uses SWT [1], which uses native controls.
Although Eclipse drives users up the wall in every other way, it uses SWT [1], which uses native controls.
I think it's actually worse feeling than a toolkit like GTK+, which is more of a Linux toolkit that "happens to work" on Mac OS. Qt apps feel like they're trying to sneak something past me (except on KDE, of course), and there's a very uncanny valley-esque effect. A GTK+ application is more "upfront" about it, so at least I understand what to expect immediately.
Cyberduck, a file transfer application, is written in Java, but I had no idea because it uses actual bindings to Cocoa. If you want to provide the best user experience in a Java application, that's the way to go, write swappable front ends for each operating system with the native toolkit bindings.
I don't have a problem with using different UI toolkits as long as they look like native apps. The problem is these toolkits are always a step behind in exposing features of the platform you are developing for.
SWT, however, does actually use native widgets. Try out an app that uses it - it will behave the way you would expect an app to behave.