Esistono metodi incorporati in Java per aumentare le dimensioni dei caratteri?Esistono metodi incorporati in Java per aumentare le dimensioni dei caratteri?
risposta
La classe Font
consente di specificare la dimensione del carattere.
Così, per creare un tipo di carattere si fa qualcosa di simile:
Font f = new Font("serif", Font.PLAIN, fontSize);
Il parametro fontSize
determinerà la dimensione del vostro Font
.
Non è possibile modificare la dimensione di un oggetto Font esistente. Il modo migliore per ottenere un effetto simile è utilizzare il metodo deriveFont(size)
per creare un nuovo Font
quasi identico di dimensioni diverse.
Font biggerFont = existingFont.deriveFont(bigNumber);
Nota: è necessario specificare che 'bigNumber' è un float, altrimenti si attiverà il sovraccarico' deriveFont (int style) '. Cioè 'ExistingFont.deriveFont (100F);'. –
questo metodo "deriveFont (size)" crea un nuovo oggetto Font? – JAVA
è possibile derivare un nuovo carattere con una dimensione diversa utilizzando la seguente:
Font original = // some font
Font bigger = original.deriveFont(newSize);
Dove newSize è un galleggiante, non un int. Questo è ben documentato nel JavaDoc per Font come altre persone hanno fatto notare
+1. @ Riji: Inoltre, se si desidera aumentare la dimensione del carattere sui componenti della GUI in questo modo, è possibile farlo mantenendo il set e il formato del font. Ad esempio: myLabel.setFont (myLabel.getFont(). DeriveFont (20)); È quindi possibile implementare un algoritmo ricorsivo che esegue questa operazione sull'intera gerarchia dei componenti. Solo un'idea – akarnokd
newSize _must_ essere un 'float', non un' int'. Vedere [deriveFont (float)] (http://docs.oracle.com/javase/6/docs/api/java/awt/Font.html#deriveFont (float)) e rispondere da Avrom. [deriveFont (int)] (http://docs.oracle.com/javase/6/docs/api/java/awt/Font.html#deriveFont (int)) applica uno _style_ (codificato come valore 'int') al carattere. –
Supponendo che si desidera modificare la dimensione del carattere su uno specifico JLabel
, si può fare:
label.setFont(label.getFont().deriveFont(newSize));
Assicurarsi che newSize
è un float
non è un int
.
è possibile impostare la proprietà swing.plaf.metal.controlFont durante l'esecuzione si domanda:
java -Dswing.plaf.metal.controlFont = Dialog-50 YourMainClass
in In questo esempio, il carattere predefinito è "Dialog" con dimensione 50.
+1 per la parametrizzazione Swing – akarnokd
Ho interpretato questa domanda come "Come posso aumentare la dimensione del carattere per Swing su tutta la linea". Non sono a conoscenza di alcun modo incorporato per farlo, ma è possibile farlo da soli modificando i valori nella classe UIManager all'avvio prima di creare qualsiasi componente Swing.
Lo faccio facendo passare un parametro nella mia app che utilizzo come moltiplicatore. Se passo 150, moltiplicherà tutti i font esistenti del 150%. Il codice è il seguente
public static void initializeFontSize() {
String fontSizeParam = System.getProperty("myapp.fontSize");
if (fontSizeParam != null) {
float multiplier = Integer.parseInt(fontSizeParam)/100.0f;
UIDefaults defaults = UIManager.getDefaults();
int i = 0;
for (Enumeration e = defaults.keys(); e.hasMoreElements(); i++) {
Object key = e.nextElement();
Object value = defaults.get(key);
if (value instanceof Font) {
Font font = (Font) value;
int newSize = Math.round(font.getSize() * multiplier);
if (value instanceof FontUIResource) {
defaults.put(key, new FontUIResource(font.getName(), font.getStyle(), newSize));
} else {
defaults.put(key, new Font(font.getName(), font.getStyle(), newSize));
}
}
}
}
}
La domanda è troppo vaga per dare una buona risposta. Ma penso che tu voglia aumentare sistematicamente la dimensione del carattere nella tua applicazione.
Il tipo di carattere, lo stile e le dimensioni in un'applicazione Java Swing sono controllati tramite il meccanismo LookAndFeel. È necessario modificare il carattere nel look-and-feel se si desidera applicare la modifica a tutti i componenti Swing di un determinato tipo.
Dai un'occhiata all'esempio UIManager.
Ecco come cambiare il tipo di carattere globale per alcuni componenti dell'interfaccia utente:
UIManager.put("Label.font", new FontUIResource(new Font("Dialog", Font.PLAIN, 10))); UIManager.put("Button.font", new FontUIResource(new Font("Dialog", Font.BOLD, 10))); UIManager.put("TextField.font", new FontUIResource(new Font("Dialog", Font.PLAIN, 10)));
Potrebbe indicare per quale caso avete bisogno di aumentare la dimensione del carattere? – akarnokd