Как я могу заставить приложения Java использовать тему GTK +?

Ответы:

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.

До и после:

htorque
источник
не исправить, но все еще очень полезно для меня :) спасибо!
RolandiXor
2
Спасибо. Я использовал это как совет, но вместо этого сделал; UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");который не требует редактирования файла конфигурации.
xconspirisist
@RolandiXor Если это не сработало, это означает, что разработчик приложения жестко запрограммировал внешний вид. Вы ничего не можете с этим поделать, кроме как с открытым исходным кодом. :(
Stommestack
1
Это помогло мне решить проблему с «jdk bold font». Спасибо.
Мин
Не исправлено для универсального
медиасервера
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файл.
yanpas
источник
Положив это в ~/.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, иначе магия не работает).
Фотон
Прекрасно работает с 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?
Джаннис Кристофакис
1
Неважно, я был неправ, извини. Но почему не просто javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");?
Stommestack
2
@Jop Поскольку Javaприложения не зависят от платформы, вам следует проверить, установлена ​​ли GTKтема в вашей системе.
Джаннис Кристофакис