Maison  >  Article  >  Obtenez par programme la clé de chaîne de LookAndFeels

Obtenez par programme la clé de chaîne de LookAndFeels

PHPz
PHPzavant
2024-02-09 11:00:08654parcourir

éditeur php Baicao En programmation, nous avons souvent besoin d'utiliser différentes apparences d'interface (LookAndFeels), mais comment obtenir les clés de chaîne de ces apparences par programme ? Dans cet article, nous partagerons une méthode simple et efficace pour vous aider à obtenir rapidement la valeur de la clé de chaîne de LookAndFeels afin qu'elle puisse être utilisée plus facilement dans le programme. Nous allons jeter un coup d'oeil!

Contenu de la question

Tout d'abord, j'ai trouvé cette question, je sais que cela ressemble beaucoup à mon problème, mais j'ai un problème légèrement différent. Sur la base de mes recherches, j'ai découvert que certains l&f string 键与其他 l&f 不同,我想知道如何使用 uimanager.put(string key, object value) définissent chaque valeur de l&f .

Le problème est que certains l&fs nécessitent des clés différentes de celles d'autres l&fs et je cherche un moyen d'assimiler chaque propriété de chaque l&f afin de pouvoir définir chaque valeur par programme. J'ai trouvé ceci, il dit comment obtenir la valeur de la clé en utilisant uimanager.getcolor("key") mais je ne sais pas comment obtenir la clé.

J'ai aussi trouvé ceci, qui utilise uimanager.getlookandfeeldefaults();, mais lorsque j'imprime les objets qu'il contient, cela produit une tonne de charabia que je ne peux pas vraiment utiliser pour trouver la clé (c'est peut-être comme ça que trouver la clé, si vous pouvez trouver ça, merci).

J'ai mis le code de cette question dans mon propre code car il fournit quelques clés. Voici le code que j'utilise :

UIManager.put( "control", new Color( 128, 128, 128) );
  UIManager.put( "info", new Color(128,128,128) );
  UIManager.put( "nimbusBase", new Color( 18, 30, 49) );
  UIManager.put( "nimbusAlertYellow", new Color( 248, 187, 0) );
  UIManager.put( "nimbusDisabledText", new Color( 128, 128, 128) );
  UIManager.put( "nimbusFocus", new Color(115,164,209) );
  UIManager.put( "nimbusGreen", new Color(176,179,50) );
  UIManager.put( "nimbusInfoBlue", new Color( 66, 139, 221) );
  UIManager.put( "nimbusLightBackground", new Color( 18, 30, 49) );
  UIManager.put( "nimbusOrange", new Color(191,98,4) );
  UIManager.put( "nimbusRed", new Color(169,46,34) );
  UIManager.put( "nimbusSelectedText", new Color( 255, 255, 255) );
  UIManager.put( "nimbusSelectionBackground", new Color( 104, 93, 156) );
  UIManager.put( "text", new Color( 230, 230, 230) );

J'aime le thème nimbus pour mon projet, cependant, j'aimerais pouvoir changer de l&f dans l'application et pouvoir basculer entre des frappes de touches similaires pour chaque l&f différent. Comme je l'ai dit, certaines clés entre l&f peuvent différer pour la même valeur utilisée dans l&f .

Solution de contournement

Ce code doit imprimer la clé de l&f actuellement utilisée :

UIDefaults defaults = UIManager.getDefaults();
Enumeration<Object> keys = defaults.keys();
Collections.list(keys).stream().forEach(s -> System.out.println(s));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer