Oracle SQL Developer Look and Feels

thatjeffsmith SQL Developer 8 Comments

Tell Others About This Story:

SQL Developer is a Java Swing desktop application – surprise!

We support a native operating system ‘look and feel‘ and also ship with an Oracle look and feel (LnF).

The architecture of Swing is designed so that you may change the “look and feel” (L&F) of your application’s GUI (see A Swing Architecture Overview). “Look” refers to the appearance of GUI widgets (more formally, JComponents) and “feel” refers to the way the widgets behave.

The Oracle LnF is the default, and I also think it looks the best, especially on Windows.

However, it’s a little bit more expensive to run over the native LnFs. With the native LnF, the operating system is in charge of how to draw the Windows and render certain elements and controls.

I’m experimenting with this now…running the Windows LnF in SQL Developer v4.1 to see if it’s actually more performant. If YOU are noticing response time issues or if the app it taking too long to draw, trying changing up the LnF, and report back here with your findings!

The Preferences

Oracle SQL Developer look and feel preference - 'Oracle' is the default

Oracle SQL Developer look and feel preference – ‘Oracle’ is the default

Look and Feel Gallery

Changing this will require a restart. If you’re like me, you’re totally lazy. So instead of doing that, just check out some gallery screenshots I put together of all the different OS and LnF permutations.

SQL Developer on Windows with Windows look and feel
Tell Others About This Story:

Comments 8

  1. unfortunately the original, most elegant JAVA’s L&F isn’t available anymore. I mean something like https://docs.oracle.com/javase/tutorial/figures/uiswing/lookandfeel/MetalLAF.gif

    what we get now by using ‘Oracle’ choice are some incredibly crappy sliders (badly copy-pasted from OS X), some elements similar to XP’s (*different* versions / themes)… and other stuff looking like it was put together by some 6-year old..

    with ‘Windows’ theme I’m condemned to Windows’ 10 “flat look”.. 🙁

  2. Just a note that GTK+ LAF for Linux versions is pretty much broken, at least on Debian 6. I noticed how you excluded Connections and DBA views from your last screenshot – well, those plain don’t work for me, panels are just empty with no header nor content. Can it be I’m missing something in my install? Not that I’d use native LAF, it looks pretty ugly as it is now.

    There’s an important question, though – can we make SQLDeveloper work with any custom look-and-feel? I switched JDev10 to jgoodies LAF with some manual config file tweaking, but I wasn’t able to do the same for SQL developer, as far as I can remember.

    Anyway, those who aren’t satisfied with default theme like I was, can tweak it a little bit by modifying /ide/themes/fusionblue.jar. Switching background from dark blue to vertical gray->light blue gradient improved readability a great deal for me.

    1. thatjeffsmith Post
      Author

      Let’s just say I don’t recommend using the GTK+ LAF 🙂

      >>There’s an important question, though – can we make SQLDeveloper work with any custom look-and-feel?
      No. And we want support for more LAFs, but we have to get that supported and working in the JDEV framework first.

      No comment on your workaround, but anyone reading this should know that messing with the JARs goes against he EULA.

      1. > No comment on your workaround, but anyone reading this should know that messing with the JARs goes against he EULA.

        Whoops… Okay, let’s just assume I used ide\themes\creating_themes.html tutorial and created my own theme for personal use only instead 🙂

  3. ::using 4.0.3:: the biggest slowdown is on startup. Once the applcation is fully running, response times seem fine. I disabled all the extensions, and that only helped marginally.

    I’m hoping that 4.1 fixes this above all else.

    1. thatjeffsmith Post
      Author
    1. thatjeffsmith Post
      Author

Leave a Reply

Your email address will not be published. Required fields are marked *