View Full Version : [Java] LookAndFeel
Salve,
Volevo sapere se è possibile ricavare il Font (a me serve la Dimendione) usato da un determinato LookAndFeel.
Grazie.
Font font = ilLookAndFeel.getDefaults().getFont(chiave);
chiave è una stringa che identifica il font. Ad esempio "Button.font", "CheckBox.font"...
Se vuoi il font nel laf corrente:
UIManager.getLookAndFeelDefaults().getFont
Come sempre puntuale.
Grazie Mille.
Se vuoi il font nel laf corrente:
UIManager.getLookAndFeelDefaults().getFont
Il Metodo getFont() sembra non esistere. :muro:
Eccolo qua:
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/UIDefaults.html#getFont(java.lang.Object)
Eccolo qua:
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/UIDefaults.html#getFont(java.lang.Object)
Non mi sembra lo stesso metodo. :D
E' quello. In che senso sembra non esistere?
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/UIDefaults.html
Parlare, comunicare, dire. Non incollare collegamenti. :D
L'acqua bagna, il fuoco scotta e gli oggetti della classe UIDefaults hanno un metodo
public Font getFont(Object key)
Dati questi inconfutabili fatti, perchè mi dici che il metodo in questione sembra non esistere? Ottieni qualche errore in compilazione? Se sì, puoi incollare la traccia dell'errore? Parlami. :D.
Ok
Allora ho installato un LookAndFeel proprietario. (Liquid)
Ecco io vorrei sapere la dimensione del font utilizzato nelle tabelle.
Grazie.
Nel main scrivi:
System.out.println(UIManager.getLookAndFeelDefaults().getFont("Table.font"));
e lanci il programma con:
java -Dswing.defaultlaf=com.birosoft.liquid.LiquidLookAndFeel blabla.Main
Nel Main ho scritto:
System.out.println(javax.swing.UIManager.getLookAndFeelDefaults().getFont("Table.font").getFontName());
ma mi stampa Dialog.plain
Invece mi sembra che sia Helvetia. :muro:
Se ti sembra diverso probabilmente lo è davvero. Si vede che quel LookAndFeel usa un Font diverso da quello della tabella per la proiezione del contenuto delle celle. Puoi provare con:
JTable table = new JTable();
TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
if(renderer instanceof JComponent) {
System.out.println((JComponent)renderer).getFont());
}
e vedi cosa salta fuori.
Stessa cosa:
javax.swing.plaf.FontUIResource[family=Dialog,name=Dialog,style=plain,size=12]
Sicuro di avere impostato il look and feel prima di invocare quel codice? Ho fatto un esperimento e mi risulta che:
1. con il look and feel predefinito il font è:
javax.swing.plaf.FontUIResource[family=Dialog,name=Dialog,style=bold,size=12]
2. cambiando il look and feel (es. substance):
java -Dswing.defaultlaf=org.jvnet.substance.SubstanceLookAndFeel
risulta:
javax.swing.plaf.FontUIResource[family=Tahoma,name=Tahoma,style=plain,size=11]
Ma può anche essere che il font usato da liquid sia il Dialog.
Questo è il mio codice:
javax.swing.UIManager.setLookAndFeel("com.birosoft.liquid.LiquidLookAndFeel");
System.out.println(javax.swing.UIManager.getLookAndFeelDefaults().getFont("Table.font").getFontName());
Mo' scarico il look and feel e vediamo. Volevo giusto provarlo.
Liquid usa il Dialog, 12 Plain. Lo stesso di Ocean.
Ps.: se provo a lanciare il programma con il lookandfeel standard e con il lookandfeel liquid, si vede subito che i due font sono uguali.
Liquid usa il Dialog, 12 Plain. Lo stesso di Ocean.
Ps.: se provo a lanciare il programma con il lookandfeel standard e con il lookandfeel liquid, si vede subito che i due font sono uguali.
Mi sballa lo scrolling su una lista
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.