java如何设置字体
设置字体的基本方法
在Java中,可以通过 java.awt.Font 类设置字体。以下是一个简单示例:
import java.awt.Font;
import javax.swing.JLabel;
// 创建字体对象(字体名称、样式、大小)
Font font = new Font("Arial", Font.BOLD, 16);
// 应用字体到组件(如JLabel)
JLabel label = new JLabel("Hello World");
label.setFont(font);
- 字体名称:如
"Arial"、"Times New Roman",或使用逻辑字体如"Serif"。 - 样式:
Font.PLAIN(常规)、Font.BOLD(加粗)、Font.ITALIC(斜体)。 - 大小:整数,单位为像素。
获取系统可用字体
通过 GraphicsEnvironment 获取系统支持的字体列表:
import java.awt.GraphicsEnvironment;
String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for (String fontName : fonts) {
System.out.println(fontName);
}
在Swing中设置默认字体
为所有Swing组件设置全局默认字体:
import javax.swing.UIManager;
// 设置全局UI字体
UIManager.put("Label.font", new Font("Arial", Font.PLAIN, 14));
UIManager.put("Button.font", new Font("Arial", Font.BOLD, 12));
在JavaFX中设置字体
JavaFX使用 javafx.scene.text.Font 类:
import javafx.scene.text.Font;
import javafx.scene.control.Label;
Label label = new Label("JavaFX Text");
label.setFont(Font.font("Verdana", 20)); // 字体名称和大小
加载自定义字体文件
从外部文件(如TTF)加载字体:
try {
Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("path/to/font.ttf"));
// 派生字体样式和大小
Font derivedFont = customFont.deriveFont(Font.BOLD, 14);
} catch (Exception e) {
e.printStackTrace();
}
- 需处理
IOException和FontFormatException。
注意事项
- 跨平台兼容性:不同系统支持的字体可能不同,建议使用逻辑字体或检查字体是否存在。
- 性能:加载大量自定义字体可能影响性能。







