Tworzę aplikację desktopową z Java Swing do użytku osobistego i potrzebuję pięknego wyglądu i odczucia dla mojej aplikacji. Jak mogę to zrobić za pomocą języka Java lub interfejsu API innej firmy?
Tworzę aplikację desktopową z Java Swing do użytku osobistego i potrzebuję pięknego wyglądu i odczucia dla mojej aplikacji. Jak mogę to zrobić za pomocą języka Java lub interfejsu API innej firmy?
Odpowiedzi:
Istnieje wiele możliwości dla LaFs:
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
parametr do wywołania Java.
Możesz wypróbować L&F, który tworzę - WebLaF
Łączy w sobie trzy części wymagane do pomyślnego rozwoju interfejsu użytkownika:
Pliki binarne: https://github.com/mgarin/weblaf/releases
Źródło: https://github.com/mgarin/weblaf
Licencje: GPLv3 i komercyjne
Kilka przykładów pokazujących, jak wyglądają niektóre komponenty WebLaF:
Głównym powodem, dla którego zacząłem od zupełnie nowego L&F, jest to, że większości istniejących L&F brakuje elastyczności - w większości przypadków nie można ich zmienić na nowo (w najlepszym przypadku można zmienić tylko kilka kolorów i włączyć / wyłączyć niektóre elementy interfejsu użytkownika) i / lub są na to tylko niewygodne sposoby. Jest jeszcze gorzej, jeśli chodzi o stylizację komponentów niestandardowych / zewnętrznych - nie wyglądają podobnie do innych komponentów stylizowanych przez jakiś konkretny L&F lub nawet zupełnie inaczej - to sprawia, że Twoja aplikacja wygląda nieprofesjonalnie i nieprzyjemnie.
Moim celem jest dostarczenie w pełni konfigurowalnego L&F z pakietem dodatkowych, szeroko znanych i przydatnych komponentów (na przykład: selektor dat, tabela drzewa, dokowalne i okienka dokumentów i wiele innych) oraz dodatkowe pomocne menedżery i narzędzia, które zmniejszą ilość kodu wymagana do szybkiego zintegrowania WebLaF z Twoją aplikacją i pomocy w tworzeniu niesamowitych interfejsów użytkownika przy użyciu Swing.
Możesz także użyć JTattoo ( http://www.jtattoo.net/ ), ma kilka fajnych motywów, których można użyć.
Po prostu pobierz plik jar i zaimportuj go do swojej ścieżki klas lub dodaj jako zależność mavena:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Oto lista niektórych fajnych dostępnych motywów:
pozdrowienia
Oto kod, który tworzy okno dialogowe, które umożliwia użytkownikowi aplikacji zmianę wyglądu i zachowania w oparciu o systemy użytkownika . Alternatywnie, jeśli możesz przechowywać żądane Look And Feel w swojej aplikacji, mogą one być „przenośne”, co jest pożądanym rezultatem.
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);
}
}
}
}
}