2009-07-22 2 views
1

Я новичок в программировании, но я готов написать Java-программу. Как я и планирую, я пытаюсь найти для него правильный графический интерфейс. Я нашел this с параметрами GUI. У меня есть два вопроса:Изменения в интерфейсе Java GUI

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

ответ

8

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

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

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

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

Как (очень профессионально выглядящий), и, по моему мнению, это вещество, а также Nimbus, который будет поставляться с более поздними версиями JRE в качестве стандартного вида N-feel (по крайней мере, это план) и который может загружаться отдельно от java.net.

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

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

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

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

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

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 

И, наконец, если вы на окнах вы можете использовать системы выглядеть и чувствовать себя, как это:

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
+3

Обратите внимание, что UIManager.setLookAndFeel выдает исключение UnsupportedLookAndFeelException, если оно не может найти указанный внешний вид. – Powerlord

+0

Мне нужно было использовать UIManager .setLookAndFeel («com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel») , чтобы заставить Нимбус работать. Обратите внимание на пакет com.sun.swing, а не javax.swing. – AngerClown

+0

вот почему у вас есть новая версия jre, которая включает в себя внешний вид Nimbus в «неофициальных» пакетах com.sun. Вы не можете полагаться на этот пакет, доступный в будущем. Путь, который я дал вам, «javax.swing» верен, если вы загружаете Nimbus в качестве внешней библиотеки. А также это будет официальное название, как только Nimbus будет включен в jre в качестве официального пакета. Поэтому, если бы я был вами, я бы загрузил библиотеку и использовал ее до тех пор, пока Nimbus не отправит по умолчанию lnf. –

0

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

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

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

+0

Почему они не очень популярны? Вы видели те, с кем я связан? Они выглядят довольно красиво. Какие проблемы с качеством могут удержать людей от их использования? – ChrisC

2

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

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

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

В качестве побочного примечания, если вы используете 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(); 
+0

Не могли бы я каким-то образом включить необходимые библиотеки (или что-то еще) в программу установки, чтобы пользователь увидел внешний вид и смысл, которые я намеревался, когда я его разработал? – ChrisC

+0

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

+0

Включает ли файлы .jar обычную практику в случае нестандартного дизайна внешнего вида? Иначе зачем Р.Бемроузу (или кому-либо еще) беспокоиться об UnsupportedLookAndFeelException (s), и он по умолчанию выглядит по умолчанию? Или я не понимаю? – ChrisC

1

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

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

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

Смежные вопросы