¿Hay alguna forma de obtener el nombre de fuente predeterminado del sistema en Java? La fuente predeterminada puede diferir de os. Por lo tanto, puede crear problemas si usamos la fuente Arial y el archivo jar se ejecuta en Linux sin tener instalada la fuente Arial.Obtener fuente predeterminada del sistema
Respuesta
JavaFX hace esto mucho más fácil:
import javafx.scene.text.Font;
a continuación, utilizar:
Font defaultFont = Font.getDefault();
o
// Where 14 is the font size
Font defaultFont = new Font(14);
No creo que haya una manera de recuperar una fuente predeterminada del sistema (en Swing/AWT la fuente normalmente está asociada con la LAF y el componente actual, por ejemplo), pero si su preocupación es la compatibilidad de fuentes, podría comprobar la fuente que está utilizando en contra de todas las fuentes del sistema:
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] allFonts = e.getAllFonts();
y hacer una elección "fail-over" si no existe.
1 Véase también [fuentes, tamaños Obtención negrita, etc ...] (http://stackoverflow.com/questions/6965038/getting-fonts-sizes-bold-etc/6965149# 6965149). –
En el tema de los fallos, 'Font.canDisplayUpTo' es muy útil para probar si los caracteres específicos funcionarán, por ejemplo, si está usando una fuente de lenguaje CJK y necesita una opción alternativa que admita esos idiomas. – misaka
getFont() devuelve la fuente actual, que es (por lo general?) El valor predeterminado. Hice esto para aumentar el tamaño de fuente.
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
Actualmente estoy usando esto para conseguir la fuente por defecto, aunque preferiría no tenga que utilizar un objeto gráfico para conseguirlo:
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;
}
Tome un vistazo a public static Font decode(String str) aquí. Cuando el método de decodificación recibe un puntero nulo como parámetro, devuelve la fuente "Diálogo" que suele ser la fuente del sistema.
new Fuente (Font.decode (null) .getName(), Font.BOLD, 14/* tamaño * /); funciona, gracias – Exceptyon
Prueba esto:
private final Font FONT = new JLabel().getFont();
En Windows, Segoe UI
Visita http://www.apaddedcell.com/sites/www.apaddedcell.com/files/fonts-article/final/index.html para ver una lista de fuentes preinstaladas.
me eligieron Verdana
- 1. Fuente del sistema iPhone
- 2. SWT: forma agnóstica del sistema para obtener la fuente monoespaciada
- 3. Cambiar la fuente predeterminada del código github
- 4. JasperReports Fuente predeterminada
- 5. ¿Cómo se obtiene la configuración de fuente predeterminada del sistema en Qt?
- 6. iOS Foundation: tamaño de fuente del sistema
- 7. ¿Puedes usar el portapapeles del sistema de forma predeterminada?
- 8. Fuente predeterminada para la aplicación Windows Forms
- 9. Fuente predeterminada establecida en Android
- 10. UIViewController configuración predeterminada de fuente de título
- 11. Obtener información de zona horaria del sistema en Python?
- 12. Configuración de fuente predeterminada en JEditorPane
- 13. VBS - Obtener impresora predeterminada
- 14. Obtener el tamaño del sistema RAM
- 15. ¿Cómo obtener información del sistema en PHP?
- 16. Obtener la hora actual del sistema
- 17. Obtener la hora actual del sistema?
- 18. Cómo obtener los colores del sistema Android
- 19. Cómo obtener estadísticas del sistema con node.js
- 20. Unidad predeterminada para tamaño de fuente?
- 21. Cómo cambiar la fuente predeterminada de UIWebView
- 22. Cambiar la fuente predeterminada de JLabel
- 23. Fuente predeterminada sans-serif de Linux Firefox
- 24. Establecer fuente predeterminada para SWT Shell
- 25. usa la fuente de monoespacio del sistema en gtk textview
- 26. ¿Existen gramáticas de verilog completas del sistema de fuente abierta?
- 27. Obtener el nombre del sistema operativo del cliente
- 28. Process.Start() obtener errores de la ventana del símbolo del sistema
- 29. Obtener fuente de correo usando Zend_Mail
- 30. Error o característica: Swing fuente gui predeterminada incorrecta para Win6 +
La respuesta actualizada y correcta en mi humilde opinión – Troyseph
¿Hay alguna manera de hacer esto en Swing? –
@CardinalSystem Recomiendo usar el nombre, el tamaño y el peso de esta 'Fuente' de JavaFX para crear una 'Fuente' Swing. Si no le gusta el sabor de eso, entonces creo que la respuesta de Salvation es para usted: https://stackoverflow.com/a/11592041/453435 – Supuhstar