如何获得Java应用程序以使用GTK +主题?


Answers:


29

您可以尝试将Java的默认外观设置为GTK:

打开一个终端(Ctrl + Alt + T),将上面的一个粘贴到openjdk,将下面的一个粘贴到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

  • 按照该文件中的注释并删除哈希符号,因此它看起来像:

    # uncomment to set the default look and feel to GTK
    swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
    
  • 保存并重新启动Java应用程序。

之前和之后:


没有解决它,但对我来说仍然非常有用:)谢谢!
RolandiXor

2
谢谢。我以此为小费,但是却做了。UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");不需要任何配置文件编辑。
xconspirisist

@RolandiXor如果这不起作用,则意味着该应用程序的开发人员对外观进行了硬编码。除非它是开源的,否则您无能为力。:(
stommestack

1
它使我无法解决“ jdk粗体字体”错误。谢谢。
MInner 2014年

未在Ubuntu Mate 14上修复通用
媒体服务器。– NicolasSmith,

10

如果您已经尝试了上述解决方案,请尝试使用此方法(在Xfce上对我有帮助):

  1. export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

  2. 然后在此终端中启动您的应用程序。

  3. 如果您对结果满意,请将此行添加到~/.profile文件中。

将其放入~/.profile对我来说不起作用,但是我放入 _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"/etc/environment(请注意使用双引号而不是单引号以及缺少号export,否则魔术不起作用)。
Photon

可与SweetHome3D和Ubuntu 18.04完美配合
NicolasSmith

7

如果您是开发人员,或者它是开放源代码,那么另一种方法是更改​​应用程序的外观。在main方法中插入以下代码。

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;
     } 
}

可能也有帮助。


@Jop您确定其他平台吗?那么KDE主题呢?
giannis christofakis

1
没关系,我错了,对不起。但是,为什么不javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");呢?
stommestack

2
@Jop由于Java应用程序是平台无关的,因此您应该检查GTK主题是否已在系统中安装。
giannis christofakis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.