Sto sviluppando un'applicazione desktop con Java Swing per il mio uso personale. Ho bisogno di un bel look and feel per la mia applicazione. Come posso farlo utilizzando Java o un'API di terze parti?
Sto sviluppando un'applicazione desktop con Java Swing per il mio uso personale. Ho bisogno di un bel look and feel per la mia applicazione. Come posso farlo utilizzando Java o un'API di terze parti?
Risposte:
Esistono molte possibilità per i LaF:
java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -jar MyApp.jar
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
parametro all'invocazione Java.
Puoi provare L&F che sto sviluppando - WebLaF
Combina tre parti necessarie per lo sviluppo dell'interfaccia utente di successo:
File binari: https://github.com/mgarin/weblaf/releases
Fonte: https://github.com/mgarin/weblaf
Licenze: GPLv3 e commerciale
Alcuni esempi che mostrano l'aspetto di alcuni componenti WebLaF:
Il motivo principale per cui ho iniziato con un L&F completamente nuovo è che la maggior parte degli L&F esistenti mancano di flessibilità - nella maggior parte dei casi non è possibile ridisegnarli (è possibile modificare solo alcuni colori e attivare / disattivare alcuni elementi dell'interfaccia utente nel migliore dei casi) e / o ci sono solo modi scomodi per farlo. È ancora peggio quando si tratta di uno stile personalizzato / componenti di terze parti - non sembrano simili ad altri componenti disegnati da alcuni L&F specifici o addirittura totalmente diversi - che rende la tua applicazione poco professionale e sgradevole.
Il mio obiettivo è fornire un L&F completamente personalizzabile con un pacchetto di componenti aggiuntivi noti e utili (ad esempio: selettore di date, tabella ad albero, riquadri ancorabili e di documenti e molti altri) e utili gestori e utilità utili, che ridurranno il quantità di codice richiesta per integrare rapidamente WebLaF nella tua applicazione e aiutare a creare fantastiche UI usando Swing.
Puoi anche usare JTattoo ( http://www.jtattoo.net/ ), ha un paio di temi interessanti che possono essere usati.
Basta scaricare il vaso e importarlo nel tuo percorso di classe o aggiungerlo come dipendenza Maven:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Ecco un elenco di alcuni dei temi interessanti che hanno a disposizione:
Saluti
Ecco il codice che crea una finestra di dialogo che consente all'utente dell'applicazione di modificare l'aspetto e la sensibilità in base ai sistemi dell'utente . In alternativa, se è possibile memorizzare i look and feel desiderati nella propria applicazione, potrebbero essere "portatili", che è il risultato desiderato.
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);
}
}
}
}
}