Я разрабатываю настольное приложение с Java Swing для личного использования. Мне нужно красивое приложение Look and Feel для моего приложения. Как я могу это сделать с помощью Java или стороннего API?
Java Look and Feel (L & F)
Ответ 1
Для LaFs существует множество возможностей:
- native для вашей системы
- nimbus LaF
- Web LaF
- Проект substance (раздвоенный в Insubstantial)
- Napkin LaF
- Synthetica
- Quaqua (выглядит как аква из MacOS X)
- Seaglass
- JGoodies
- Liquidlnf
- Сплав Look and Feel
- PgsLookAndFeel
- JTatoo
- Jide look and feel
- и др.
Ресурсы:
- Лучший Java Swing Look и Feel Themes | Топ-10 (теперь многие изображения предварительного просмотра на этой странице отсутствуют)
- oracle.com - Изменение внешнего вида и восприятия
- wikipedia.org - Подключаемый внешний вид
- Java2s.com - Внешний вид
Связанные темы:
Ответ 2
Вы можете попробовать L & F, который я разрабатываю - WebLaF
Он объединяет три части, необходимые для успешного развития пользовательского интерфейса:
- Кросс-платформенный перезаписываемый L & F для приложений Swing.
- Большой набор расширенных компонентов Swing
- Различные утилиты и менеджеры
Binaries: https://github.com/mgarin/weblaf/releases
Источник: https://github.com/mgarin/weblaf
Лицензии: GPLv3 и Коммерческий
Несколько примеров, показывающих, как выглядят некоторые из компонентов WebLaF:
Основная причина, по которой я начинал с совершенно нового 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);
}
}
}
}
}