Bonjour,
Je cherche à modifier les caractéristiques (caractères, taille, couleur) du String associé à la balise title d'une JFrame.
D'avance merci
Bonjour,
Je cherche à modifier les caractéristiques (caractères, taille, couleur) du String associé à la balise title d'une JFrame.
D'avance merci
Salut,
- Option 1 - La propre mais longue et fastidieuse
Les couleurs et styles des titres de JFrame (et tout le reste, bouton, bordures, etc) sont gérés par ce qu'on appelle le Look and Feel. Pour pouvoir faire ce que tu veux il te faudra faire un look and feel complet, ou éventuellement étendre un existant si c'est possible. Par défaut, le Look And Feel est spécifique à l'OS, donc ça complique un peu les choses pour faire ça de manière à ce que ça fonctionne partout (Windows, Mac, Linux, etc). D'autant plus que les classes de Look And Feel "système" ne sont pas dans les packages standards.
Certains look and feel supporte une notion de thèmes qui facilitera la colorisation. Si tu ne tiens pas à avoir un look and feel système, ça peut être une solution plus simple.- Option 2 - La bidouille, simple, limitée (tu ne pourras pas tout paramétrer), résultat laid (comme tu pourras le voir avec l'exemple suivant)
Désactiver le look and feel et utiliser les propriétés d'UI.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public static void main(String[] args) { LookAndFeel lnf = UIManager.getLookAndFeel(); System.out.println(lnf); UIDefaults uiDefaults = UIManager.getDefaults(); uiDefaults.put("activeCaption", new javax.swing.plaf.ColorUIResource(Color.RED)); // titre en rouge uiDefaults.put("activeCaptionText", new javax.swing.plaf.ColorUIResource(Color.GREEN)); // fond du titre en vert JFrame.setDefaultLookAndFeelDecorated(true); // désactiver le look and feel JFrame frame = new JFrame(); frame.setTitle("Titre"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 300); frame.setLocationRelativeTo(null); frame.setVisible(true); }- Option 3 - Tout refaire soi-même, galère et il faut bien connaître Swing pour que la fenêtre fonctionne correctement (qu'on puisse la déplacer par drag and drop de la barre de titre, gérer les boutons, les menus, etc)
Pour ça il faut passer en mode "non décoré". Appeler setUndecorated(true) sur l'instance de frame avant de l'afficher (donc avant le setVisible(true)). Tout refaire soi-même signifie ajouter des composants pour le titre, le bouton, des bordures, etc (ou tout dessiner dans le fond de la fenêtre) et gérer les différentes actions. Tu pourras avoir le graphisme que tu souhaites, y compris avoir une fenêtre non rectangulaire.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager