FlatLaf est une bibliothèque Look and Feel open source conçue pour les applications Swing en Java. Elle offre des thèmes modernes, notamment des variantes inspirées de Darcula et des environnements JetBrains.
Structure du projet après clonage
Le dépôt Git contient plusieurs éléments essentiels. Le dossier principle nommé flatlaf héberge le code source, les ressources et les tests. On y trouve notamment :
src/main/java: le code source de la bibliothèque.src/main/resources: les fichiers de ressources (images, configurations).src/test/java: les tests unitaires.
À la racine, des fichiers de build comme build.gradle.kts et settings.gradle.kts permettent la compilation avec Gradle. Le fichier LICENSE précise les conditions d'utilisation sous Apache 2.0.
Intégration dans une application Swing
FlatLaf s'initialise au démarrage d'une application Swing. Voici un exemple minimaliste :
import javax.swing.*;
import com.formdev.flatlaf.FlatLightLaf;
public class ApplicationDemo {
public static void main(String[] arguments) {
// Appliquer le thème clair de FlatLaf
FlatLightLaf.install();
// Créer et afficher une fenêtre de base
SwingUtilities.invokeLater(() -> {
JFrame fenetre = new JFrame("Démonstration FlatLaf");
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setSize(400, 300);
fenetre.setVisible(true);
});
}
}
Une application de démonstration pré-compilée peut être lancée avec la commande :
java -jar flatlaf-demo.jar
Le fichier JAR se trouve généralement dans le répertoire de build après compilation.
Personnalisation des styles
FlatLaf ne nécessite pas de fichier de configuration externe. Les paramètres visuels sont définis directement dans le code via l'UIManager. Pour modifier l'apparence d'un composant :
import javax.swing.UIManager;
import java.awt.Color;
// Changer la couleur de fond par défaut des champs texte
UIManager.put("TextField.background", new Color(230, 230, 240));
Pour des personnalisations complexes, il est conseillé de créer une méthode d'initialisation dédiée qui applique tous les changements de style. L'outil ThemeEditor inclus dans le projet permet de visualiser et modifier les thèmes de manière interactive avant de les intégrer au code.
La bibliothèque offre un contrôle granulaire sur tous les aspects visuels des composants Swing, permettant une adaptation précise aux besoins de l'application.