Как сделать программы Java GUI более современными?

Я использую Dr Java в Ubuntu 14.04, и компоненты GUI выглядят очень устаревшими по сравнению с Mac или Windows. Есть ли способ обновить это, или все компоненты Java в Linux немного устарели?

Я использую компилятор JDK 8.0 от Oracle, если это поможет.

Вот некоторые JButtons в Ubuntu

2 ответа

Решение

См.: https://stackoverflow.com/questions/209731/how-do-i-force-get-to-use-gtklookandfeel-in-java-on-kde

Вы можете намекнуть JVM, чтобы использовать другой "Look and Feel" (LAF). Существует несколько поставляемых LAFs, доступных для виртуальной машины, и несколько, относящиеся к некоторым операционным системам (т. Е. Windows LAF доступна только в Windows).

Я подозреваю, что вы видите LAF "Металл", который довольно уродлив (и случается по умолчанию, если разработчик не указывает другой LAF для приложения с графическим интерфейсом). Вы можете попытаться форсировать GTK (или Nimbus, если у вас правильная версия VM), как предложено в этой ссылке. Это будет что-то вроде этого:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel YourAppName

Вам придется заменить имя приложения на YourAppName. Или вам может понадобиться отредактировать файл, если ваше приложение запускается через какой-либо вид запуска Java. Идея состоит в том, что вы хотите добавить это определение Java ("-Dswing.defaultlaf=...") к аргументам ВМ как-то.

Поскольку вы используете виртуальную машину Oracle Java 8, вы можете даже попробовать javax.swing.plaf.nimbus.NimbusLookAndFeel,

Refs: Как настроить внешний вид

Я надеюсь, что вам нужна Java, чтобы использовать GTK. Как ответил jdv, вы можете установить его во время выполнения или вы можете установить его для всех приложений Java Swing, используя следующую технику:

Шаг 1: В Java 8 этот файл недоступен по умолчанию. Таким образом, данная команда создаст новую. В зависимости от версии Java измените путь.

gksu gedit /usr/lib/jvm/jdk1.8.0_60/jre/lib/swing.properties

Шаг 2: Добавьте следующую строку в файл и сохраните файл

swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel

Теперь запустите приложение, вы получите родной аллок и почувствуете все свинг-приложения.

Несмотря на то, что это не требуется для вашего приложения Calculator, включение Global Menu улучшит внешний вид Java-приложений. Чтобы включить глобальное меню:

Ste 1: Установите Jayatana, используя следующий набор команд:

Из Ubuntu 15.04 он установлен по умолчанию.

sudo add-apt-repository ppa:danjaredg/jayatana
sudo apt-get update
sudo apt-get install jayatana

Шаг 2: Отключить настройку gloabl Jayatana

sudo rm /usr/share/upstart/sessions/jayatana.conf

Шаг 3: Когда вы запускаете приложение Java, используйте следующую команду

java -jar -javaagent:/usr/share/java/jayatanaag.jar <file-name>

Кредиты для:

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

Поддержка глобального меню для приложений Java в Ubuntu

Другие вопросы по тегам