Изменения в интерфейсе Java

Я новичок в программировании, но я готовлюсь написать программу на Java. Поскольку я планирую это, я пытаюсь найти правильный GUI для этого. Я нашел эту страницу с параметрами графического интерфейса. У меня есть два вопроса:

  1. Будут ли они просто подключаться к Java GUI Builder?
  2. Насколько легко (или сложно) изменить внешний вид графического интерфейса после сборки программы?

4 ответа

Решение

Изменить внешний вид программы так же просто, как:

UIManager.setLookAndFeel("fully qualified name of look and feel");

перед созданием GUI-кода. Таким образом, вы можете легко создать весь свой графический интерфейс с помощью GUI Builder, а затем просто вызвать его в начале вашей программы.

(Обратите внимание, что некоторые вещи, такие как Substance, выглядят очень строго, когда дело доходит до проблем с потоками, поэтому вам лучше убедиться, что весь ваш код GUI запускается из потока диспетчеризации событий.)

В качестве предложения, два очень хорошо выглядящих (и достаточно профессионально выглядящих) вида и ощущения, на мой взгляд, это Substance и Nimbus, которые будут поставляться с более поздними выпусками JRE в качестве стандартного внешнего вида (по крайней мере, таков план) и который можно скачать отдельно с java.net.

Так что, если вы выберете Nimbus, код будет:

UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");

И один пример Substance (Substance имеет много скинов и тем, если вы хотите узнать больше, прочитайте их документацию на их сайте):

UIManager.setLookAndFeel(new org.jvnet.substance.skin.SubstanceBusinessBlackSteelLookAndFeel());

Также обратите внимание, что вы можете использовать кроссплатформенный скин (Metal) следующим образом:

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());

И, наконец, если вы работаете в Windows, вы можете использовать внешний вид системы так:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Основываясь на том, что сказал Ури, вы можете придерживаться одного из самых известных взглядов и ощущений.

Если вы используете Swing, вы можете захотеть взглянуть на внешний вид Nimbus... он включен в Java 6u10 и новее. Nimbus построен на платформе Synth, включенной в Java 5 и новее.

Конечно, если конечный пользователь использует более низкую версию, он выдаст исключение UnsupportedLookAndFeelException и значение по умолчанию для того, каким будет JVM по умолчанию (обычно это тема Metal/Ocean (кроссплатформенная)).

В качестве примечания, если вы используете Swing, вы можете выбрать, какой внешний вид используется на лету. Вам просто нужно позвонить

// "lnfName" is the look and feel name.
// "frame" is the window's JFrame.
// A try/catch block is omitted here.
UIManager.setLookAndFeel(lnfName);
SwingUtilities.updateComponentTreeUI(frame);
frame.pack();

Не обращая внимания на доводы "за" / "против" выбора внешнего вида (LAF), я добавлю немного своего опыта, который использует их...

Если вы используете стороннюю библиотеку компонентов / приложений cots (JIDE, SwingLabs/SwingX и т. Д.), У вас будут проблемы, поскольку классы пользовательского интерфейса не всегда будут существовать или будут соответствовать современным требованиям LAF. JIDE поддерживает несколько внешних LAF (Alloy и Synthetica). Некоторые LAF также предлагают поддержку виджетов; Вещество поддерживает некоторые из JIDE и SwingX. Конечным результатом является приложение с частичной оболочкой. Не красиво Убедитесь, что ваш LAF поддерживает все компоненты. Если вы чистый Swing/AWT, никаких проблем.

В свете этого мы используем Alloy для поддержки JIDE, учитывая возможность перехода на Synthetica. Мы хотели бы использовать Вещество, но у него нет поддержки JIDE.

Вообще говоря, сторонние библиотеки GUI с "внешним видом" не очень популярны, что, возможно, свидетельствует об их качестве.

Стандартные библиотеки GUI по своей природе очень сложны, и, хотя они поддерживают некоторую настройку внешнего вида, настройки часто бывают незначительными или ограниченными.

Я бы порекомендовал придерживаться Swing или SWT и посмотреть, что вы можете сделать с их механизмом внешнего вида, но не ожидайте чудес.

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