Ich entwickle eine Desktop-Anwendung mit Java Swing für meinen persönlichen Gebrauch. Ich brauche ein schönes Look and Feel für meine Anwendung. Wie kann ich dies mit Java oder einer Drittanbieter-API tun?
Ich entwickle eine Desktop-Anwendung mit Java Swing für meinen persönlichen Gebrauch. Ich brauche ein schönes Look and Feel für meine Anwendung. Wie kann ich dies mit Java oder einer Drittanbieter-API tun?
Antworten:
Es gibt viele Möglichkeiten für LaFs:
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
Sie können L & F ausprobieren, das ich entwickle - WebLaF
Es kombiniert drei Teile, die für eine erfolgreiche UI-Entwicklung erforderlich sind:
Binärdateien: https://github.com/mgarin/weblaf/releases
Quelle: https://github.com/mgarin/weblaf
Lizenzen: GPLv3 und Commercial
Einige Beispiele zeigen, wie einige WebLaF-Komponenten aussehen:
Der Hauptgrund, warum ich mit einem völlig neuen L & F angefangen habe, ist, dass die meisten vorhandenen L & F nicht flexibel sind - Sie können sie in den meisten Fällen nicht neu gestalten (Sie können nur einige Farben ändern und im besten Fall einige UI-Elemente ein- und ausschalten) und / oder es gibt nur unbequeme Möglichkeiten, das zu tun. Es ist noch schlimmer, wenn es um das Styling von benutzerdefinierten Komponenten / Komponenten von Drittanbietern geht - sie sehen nicht ähnlich aus wie andere Komponenten, die von einem bestimmten L & F entworfen wurden, oder sogar völlig anders -, was Ihre Anwendung unprofessionell und unangenehm erscheinen lässt.
Mein Ziel ist es, ein vollständig anpassbares L & F mit einer Reihe weiterer allgemein bekannter und nützlicher Komponenten (z. B. Datumsauswahl, Baumtabelle, andockbare und Dokumentfenster und viele andere) sowie zusätzlichen hilfreichen Managern und Dienstprogrammen bereitzustellen, die die Anzahl der Komponenten reduzieren Menge an Code, die erforderlich ist, um WebLaF schnell in Ihre Anwendung zu integrieren und mithilfe von Swing fantastische Benutzeroberflächen zu erstellen.
Sie können auch JTattoo ( http://www.jtattoo.net/ ) verwenden. Es enthält einige coole Themen, die verwendet werden können.
Laden Sie einfach das JAR herunter und importieren Sie es in Ihren Klassenpfad oder fügen Sie es als Maven-Abhängigkeit hinzu:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Hier ist eine Liste einiger der coolen Themen, die sie zur Verfügung haben:
Grüße
Hier ist der Code, der einen Dialog erstellt, mit dem der Benutzer Ihrer Anwendung das Erscheinungsbild basierend auf den Systemen des Benutzers ändern kann. Wenn Sie alternativ die gewünschten Look and Feels in Ihrer Anwendung speichern können, können sie "portabel" sein, was das gewünschte Ergebnis ist.
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);
}
}
}
}
}