Java Look and Feel (L&F) [fermé]
Je développe une application de bureau avec Java Swing pour mon usage personnel.J'ai besoin d'une belle apparence pour mon application. Comment puis-je le faire en utilisant Java ou une API tierce?
7 answers
Il y a beaucoup de possibilités pour LaFs:
- Le natif pour votre système
- Le nimbus LaF
- Web LaF
- Le substance projet (enfourchée dans le Négligeable projet)
- Serviette LaF
- Synthetica
- Quaqua (ressemble à aqua de macOS X)
- Seaglass
- JGoodies
- Liquidlnf
- Le Alliage de Regarder et se Sentir
- PgsLookAndFeel
- JTatoo
- Jide regarder et se sentir
- etc.
Ressources :
- Meilleurs thèmes Java Swing Look and Feel / Top 10 (Beaucoup d'images d'aperçu sur cette page sont maintenant manquantes)
- oracle.com -Modification du Look and Feel
- wikipedia.org -Aspect et sensation enfichables
- Java2s.com -Regardez et sens
Sujets connexes:
Vous pouvez essayer L & F que je développe - WebLaF
Il combine trois parties requises pour un développement réussi de l'interface utilisateur:
- Multi-plateforme re-stylable L & F pour les applications Swing
- Grand ensemble de composants d'oscillation étendus
- Divers services publics et gestionnaires
Les fichiers Binaires: https://github.com/mgarin/weblaf/releases
Source: https://github.com/mgarin/weblaf
Licences: GPLv3 et Commerciales
Quelques exemples montrant à quoi ressemblent certains composants WebLaF:
La principale raison pour laquelle j'ai commencé avec un tout nouveau L&F est que la plupart des L&F existants manquent de flexibilité - vous ne pouvez pas les re-styliser dans la plupart des cas (vous ne pouvez changer que quelques couleurs et activer/désactiver certains éléments d'interface utilisateur dans le meilleur des cas) et/ou il n'y a C'est encore pire quand il s'agit de style de composants personnalisés/3rd party-ils n'ont pas l'air similaire à d'autres composants stylisés par certains L&F spécifiques ou même totalement différent - cela rend votre application peu professionnelle et désagréable.
Mon objectif est de fournir un L & F entièrement personnalisable avec un pack de composants supplémentaires largement connus et utiles (par exemple: sélecteur de date, table arborescente, volets ancrables et document et beaucoup d'autres) et des gestionnaires et utilitaires utiles supplémentaires, ce qui réduira la quantité de code requise pour intégrer rapidement WebLaF dans votre application et aidez à créer des interfaces utilisateur impressionnantes en utilisant Swing.
Voici également une excellente ressource avec une liste de look et de sensations gratuits, skinnable, commerciaux et abandonnés: http://www.javootoo.com/
Vous pouvez également utiliser JTattoo (http://www.jtattoo.net / ), il a quelques thèmes sympas qui peuvent être utilisés.
Téléchargez simplement le jar et importez-le dans votre chemin de classe, ou ajoutez-le en tant que dépendance maven:
<dependency>
<groupId>com.jtattoo</groupId>
<artifactId>JTattoo</artifactId>
<version>1.6.11</version>
</dependency>
Voici une liste de certains des thèmes sympas qu'ils ont
+ 1 pour Synthetica ,je l'utilise combiné avec Jide{[2] } depuis quelques années et j'ai été très satisfait de l'interface utilisateur: (Captures d'écran de notre interface utilisateur pour avoir des idées sur la façon dont cela fonctionne dans la pratique si vous utilisez les deux ensemble.)
Voici le code qui crée une boîte de dialogue qui permet à l'utilisateur de votre application de changer l'apparence en fonction des systèmes de l'utilisateur . Alternativement, si vous pouvez stocker l'apparence souhaitée sur votre application, ils pourraient être "portables", ce qui est le résultat souhaité.
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);
}
}
}
}
}