Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Is there a way to get java apps to use my gtk theme?

share|improve this question
    
Similar question for KDE/Qt: askubuntu.com/questions/6948/… –  Mechanical snail Nov 5 '12 at 5:01
    
Related: askubuntu.com/questions/162571/… –  Mechanical snail Nov 5 '12 at 5:22
add comment

2 Answers 2

up vote 14 down vote accepted

You can try to set Java's default look and feel to GTK:

Open a terminal ( Ctrl + Alt + T ) and paste the upper one for openjdk and the lower one for sun java .

gksu gedit /usr/lib/jvm/java-6-openjdk/jre/lib/swing.properties

gksu gedit /usr/lib/jvm/java-6-sun/jre/lib/swing.properties

  • Follow the comment in that file and remove the hash sign, so it looks like:

    # uncomment to set the default look and feel to GTK
    swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
    
  • Save and restart the java app.

Before and after:

share|improve this answer
    
didn't fix it, but still very useful for me :) thanks! –  RolandiXor Jan 16 '11 at 21:50
2  
Thanks. I used this as a tip but instead did; UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel"); which does not require any configuration file editing. –  xconspirisist Sep 15 '13 at 18:56
    
@RolandiXor If this didn't work, that means the developer of the app hardcoded the look and feel. Nothing you can do about that, unless it is open-source. :( –  Jop Vernooij Nov 19 '13 at 15:01
    
It hepled me to solve "jdk bold font" bug. Thank you. –  MInner Jun 26 at 16:23
add comment

If you are the developer or it's an open source, an alternative way is to change the look and feel of the application. Insert the below code in the main method.

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
    if ("com.sun.java.swing.plaf.gtk.GTKLookAndFeel".equals(info.getClassName())) {   
       javax.swing.UIManager.setLookAndFeel(info.getClassName());
       break;
     } 
}

This may be also helpful.

share|improve this answer
    
@Jop Are you sure about other platforms? What about KDE themes? –  yannis Nov 19 '13 at 9:05
    
Nevermind, I was wrong, sorry. But why not just javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFee‌​l");? –  Jop Vernooij Nov 22 '13 at 17:47
    
@Jop Since Java applications are platform independent you should check if GTK theme is installed in your system. –  yannis Nov 23 '13 at 17:47
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.