Java Look and Feel (L & F)
Я разрабатываю настольное приложение с Java Swing для личного использования. Мне нужно красивое приложение Look and Feel для моего приложения. Как я могу это сделать с помощью Java или стороннего API?
Ответы
Ответ 1
Для LaFs существует множество возможностей:
Ресурсы:
Связанные темы:
Ответ 2
Вы можете попробовать L & F, который я разрабатываю - WebLaF
Он объединяет три части, необходимые для успешного развития пользовательского интерфейса:
- Кросс-платформенный перезаписываемый L & F для приложений Swing.
- Большой набор расширенных компонентов Swing
- Различные утилиты и менеджеры
Binaries: https://github.com/mgarin/weblaf/releases
Источник: https://github.com/mgarin/weblaf
Лицензии: GPLv3 и Коммерческий
Несколько примеров, показывающих, как выглядят некоторые из компонентов WebLaF:
![Some of WebLaF components]()
Основная причина, по которой я начинал с совершенно нового L & F, заключается в том, что большинство существующих L & F не имеют гибкости - вы не можете повторно их переделывать в большинстве случаев (вы можете изменить только несколько цветов и включить/выключить некоторые Элементы пользовательского интерфейса в лучшем случае) и/или есть только неудобные способы сделать это. Его еще хуже, когда дело доходит до стиля пользовательских/сторонних компонентов - они не похожи на другие компоненты, созданные каким-то конкретным L & F или даже совершенно другим, что делает ваше приложение непрофессиональным и неприятным.
Моя цель - предоставить полностью настраиваемый L & F пакет дополнительных широко известных и полезных компонентов (например: выбор даты, таблица дерева, стыковочные и панели документов и множество других) и дополнительные полезные менеджеры и утилиты, что уменьшит количество кода, необходимое для быстрой интеграции WebLaF в ваше приложение и поможет создать потрясающие пользовательские интерфейсы с помощью Swing.
Ответ 3
Здесь вы можете найти множество тем Synthetica здесь.
Ответ 4
Здесь также большой ресурс со списком свободного, скиннируемого, коммерческого и прекращенного вида и чувств:
http://www.javootoo.com/
Ответ 5
Вы также можете использовать JTattoo (http://www.jtattoo.net/), в нем есть несколько интересных тем, которые можно использовать.
Просто загрузите банку и импортируйте ее в свой путь к классам или добавьте ее как зависимость от maven:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Вот список некоторых интересных тем, которые они имеют:
- com.jtattoo.plaf.acryl.AcrylLookAndFeel
- com.jtattoo.plaf.aero.AeroLookAndFeel
- com.jtattoo.plaf.aluminium.AluminiumLookAndFeel
- com.jtattoo.plaf.bernstein.BernsteinLookAndFeel
- com.jtattoo.plaf.fast.FastLookAndFeel
- com.jtattoo.plaf.graphite.GraphiteLookAndFeel
- com.jtattoo.plaf.hifi.HiFiLookAndFeel
- com.jtattoo.plaf.luna.LunaLookAndFeel
- com.jtattoo.plaf.mcwin.McWinLookAndFeel
- com.jtattoo.plaf.mint.MintLookAndFeel
- com.jtattoo.plaf.noire.NoireLookAndFeel
- com.jtattoo.plaf.smart.SmartLookAndFeel
- com.jtattoo.plaf.texture.TextureLookAndFeel
- com.jtattoo.plaf.custom.flx.FLXLookAndFeel
Привет
Ответ 6
+1 для Synthetica, я использовал его в сочетании с Jide в течение последних нескольких лет и были очень довольны пользовательским интерфейсом:
(скриншоты нашего пользовательского интерфейса, чтобы получить некоторые идеи о том, как это работает на практике, если вы используете оба вместе.)
Ответ 7
Вот код, который создает диалог, который позволяет пользователю вашего приложения изменять Look And Feel на основе пользовательских систем. В качестве альтернативы, если вы можете сохранить желаемый Look And Feel в своем приложении, они могут быть "портативными", что является желаемым результатом.
public void changeLookAndFeel() {
List<String> lookAndFeelsDisplay = new ArrayList<>();
List<String> lookAndFeelsRealNames = new ArrayList<>();
for (LookAndFeelInfo each : UIManager.getInstalledLookAndFeels()) {
lookAndFeelsDisplay.add(each.getName());
lookAndFeelsRealNames.add(each.getClassName());
}
String changeLook = (String) JOptionPane.showInputDialog(this, "Choose Look and Feel Here:", "Select Look and Feel", JOptionPane.QUESTION_MESSAGE, null, lookAndFeelsDisplay.toArray(), null);
if (changeLook != null) {
for (int i = 0; i < lookAndFeelsDisplay.size(); i++) {
if (changeLook.equals(lookAndFeelsDisplay.get(i))) {
try {
UIManager.setLookAndFeel(lookAndFeelsRealNames.get(i));
break;
}
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
err.println(ex);
ex.printStackTrace(System.err);
}
}
}
}
}