2012-09-12 17 views
6

Ho visto persone utilizzare UIManager per modificare le stringhe di alcuni componenti swing pre-creati (ad esempio JFileChooser).Elenco chiavi UIManager Java

Dove posso trovare qualche tipo di riferimento che indichi quali stringhe in cui i componenti sono modificabili e come posso accedervi?

per chiarire:

so che UIManager.put(key, newString); cambierà il testo di corda che i riferimenti fondamentali per, a "newString".

Dove posso trovare l'elenco delle chiavi?

risposta

1

Queste chiavi sono fornite dai pacchetti di risorse PLAF di Swing e possono essere trovate nelle sorgenti JDK. Vedi ad es .:

valori di stringa per lingue diverse dall'inglese sono forniti dai file di bundle adiacenti.

E puoi aggiungere un altro gruppo a queste famiglie semplicemente creando un altro file per la lingua umana desiderata e posizionandolo ovunque sul classpath. I pacchetti in formato .java e .properties funzionano ugualmente bene, anche se il formato .java può essere leggermente più Unicode-friendly ...

Potrebbe essere utile tenere presente che l'aggiunta diretta di contenuto al pacchetto com.sun può violare il Licenza Java Quindi, per essere sul sicuro, può essere saggio per spostare le risorse supplementari per un pacchetto di proprio e registrarlo con UIManager in questo modo:

UIManager.getDefaults().addResourceBundle("mypackage.swing.plaf.basic.resources.basic"); 
4
  • Keys for UIManage r sono Look and Feel s sensibili, mezzi (per esempio) il valore Keys for Metal Look and Feel potrebbe essere diferrent quando si confrontano valore da System Look and Feel, avviso o Key missed troppo

  • uso UIManager Default s da @camickr

0

Sembra che si deve eseguire del codice vedere tutte le chiavi So che la domanda è per Java, ma in realtà il modo più rapido per ottenere le chiavi è quello di lanciare Groovy (o Gradle) script:

javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it} 

incollarlo in un file e chiamare groovy keys.groovy o gradle -b keys.groovy, qualunque strumento è più facile per tu per ottenere.

Senza creare un file è anche fattibile con groovy. Basta eseguire:

groovy -e "javax.swing.UIManager.getDefaults().keys().toList().toSorted().each {println it}"