C'è un modo per ottenere il nome del font predefinito di sistema in Java? Il carattere predefinito può differire da os. Quindi può creare problemi se usiamo il font Arial e il jar è in esecuzione in Linux senza avere il font Arial installato.Ottieni il font predefinito di sistema
risposta
JavaFX rende molto più facile:
import javafx.scene.text.Font;
quindi utilizzare:
Font defaultFont = Font.getDefault();
o
// Where 14 is the font size
Font defaultFont = new Font(14);
Non penso che ci sia un modo per recuperare un font predefinito di sistema (in Swing/AWT il font è normalmente associato al LAF e al componente attuali, ad esempio), ma se la tua preoccupazione è la compatibilità dei font, potresti verificare il tipo di carattere che si sta utilizzando contro tutti i font di sistema:
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] allFonts = e.getAllFonts();
e fare una scelta "fail-over" se non esiste.
1 Vedi anche [font Come, dimensioni, grassetto, ecc ...] (http://stackoverflow.com/questions/6965038/getting-fonts-sizes-bold-etc/6965149# 6.965.149). –
In tema di failover, 'Font.canDisplayUpTo' è molto utile per verificare se determinati caratteri funzioneranno, ad esempio se si utilizza un font di linguaggio CJK e se è necessaria un'opzione di fallback che supporti tali lingue. – misaka
Utilizzare il definito Font
constants come SERIF
/SANS_SERIF
ecc
non è quello che la domanda era circa –
GETFONT() restituisce il font corrente, che è (di solito?) Il default. Ho fatto questo per aumentare la dimensione del carattere.
public MyTextArea(){
Font currentFont = super.getFont();
String fontName = currentFont.getFontName();
int fontStyle = currentFont.getStyle();
int fontSize = currentFont.getSize() + 4;
super.setFont(new Font(fontName, fontStyle, fontSize));
}
o: 'Font currentFont = super.getFont(); if (currentFont! = null) super.setFont (currentFont.deriveFont (currentFont.getSize2D() + 4)); ' – Supuhstar
Attualmente sto usando questo per ottenere il carattere predefinito, anche se avrei preferito non essere necessario utilizzare un oggetto Graphics per farlo:
private final Font getFont()
{
Graphics g = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB).getGraphics();
Font font = new Font(g.getFont().toString(), 0, 12);
g.dispose();
return font;
}
Date un'occhiata a public static Font decode(String str) qui. Quando il metodo di decodifica riceve un puntatore nullo come parametro, restituisce il carattere "Dialog" che di solito è il carattere di sistema.
nuovo Font (Font.decode (null) .getName(), Font.BOLD, 14/* size * /); funziona, grazie – Exceptyon
Prova questo:
private final Font FONT = new JLabel().getFont();
In Windows, Segoe UI
Visita http://www.apaddedcell.com/sites/www.apaddedcell.com/files/fonts-article/final/index.html per visualizzare un elenco di font preinstallati.
ho scelto Verdana
- 1. JasperReports Font predefinito
- 2. Imposta il font predefinito per SWT Shell
- 3. Qual è il font di sistema di iOS 8?
- 4. Installazione del font di sistema con PowerShell
- 5. Come ottenere il font di sistema in un'app per iOS?
- 6. CSS: Helvetica è il font predefinito "sans-serif" su Mac e Arial il font sans-serif predefinito su Windows?
- 7. Ottieni il valore predefinito della funzione?
- 8. Modifica del font del codice github predefinito
- 9. Font Linux sans-serif predefinito per Linux
- 10. Come si ottiene il carattere di sistema predefinito nel framework .NET compatto?
- 11. Ottieni eventi dal sistema operativo
- 12. Ottieni disconnessione evento dal sistema
- 13. Ottieni il valore della chiave del Registro di sistema
- 14. JavaScript - Ottieni il formato di data breve del sistema
- 15. Ottieni identificatori di sistema univoci in C#
- 16. Font di sistema per iOS 8 e iOS 9
- 17. Modifica degli elementi di carta del polimero font predefinito
- 18. Font di Visual Studio 2010 e 2008 predefinito
- 19. Come posso sostituire il calendario predefinito del sistema operativo Android?
- 20. Visualizzazione HTML JLabel errata quando il carattere è in conflitto con il font di sistema
- 21. Come rimuovere il carattere predefinito nel browser durante il caricamento di @ font-face in CSS? "FOUT"
- 22. Ottieni informazioni sul fuso orario del sistema in Python?
- 23. Come modificare la famiglia di caratteri di Highchart per il Bootstrap famiglia di font CSS predefinito
- 24. Ottieni il fuso orario locale del sistema in python
- 25. Ottieni il valore dell'elemento predefinito dall'annotazione in Java
- 26. Ottieni il sistema operativo corrente in Adobe Air
- 27. Ottieni il fuso orario predefinito per un Paese (tramite CultureInfo)
- 28. Ottieni l'indirizzo MAC del sistema in Java
- 29. Emacs + Mac OSX e modifica del font predefinito
- 30. Ottieni la dimensione del sistema RAM
La risposta aggiornata e corretta IMHO – Troyseph
C'è un modo per farlo in Swing? –
@CardinalSystem Si consiglia di utilizzare il nome, la dimensione e il peso di questo 'Font' di JavaFX per creare un carattere 'di swing. Se non ti piace il gusto di ciò, allora penso che la risposta di Salvation sia per te: https://stackoverflow.com/a/11592041/453435 – Supuhstar