📅  最后修改于: 2023-12-03 14:49:57.508000             🧑  作者: Mango
在 Java 中,可以通过编程的方式使用自定义字体,以使其应用程序具有更具个性化的外观和体验。
Java 支持加载 .ttf、.otf、.ttc 等字体文件。可以通过 Font.createFont()
方法加载字体:
Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("path/to/font.ttf"));
要将字体应用于单个组件,例如 JLabel
,可以使用 setFont()
方法:
JLabel label = new JLabel("Custom Font Example");
label.setFont(customFont);
要在整个应用程序中应用自定义字体,可以使用 UIManager
类:
UIManager.put("Label.font", customFont);
这将覆盖应用程序中所有使用默认字体的组件的字体。
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class CustomFontExample extends JFrame {
private static final long serialVersionUID = 1L;
private static final String FONT_PATH = "path/to/font.ttf";
public CustomFontExample() {
setTitle("Custom Font Example");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 100);
// Load custom font
Font customFont;
try {
customFont = Font.createFont(Font.TRUETYPE_FONT, new File(FONT_PATH)).deriveFont(25f);
} catch (IOException | FontFormatException e) {
customFont = new Font("SansSerif", Font.PLAIN, 25);
e.printStackTrace();
}
// Apply custom font globally to all JComponents
UIManager.put("Label.font", customFont);
JLabel label = new JLabel("Hello, World!");
label.setFont(customFont);
getContentPane().add(label);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new CustomFontExample().setVisible(true);
});
}
}
在示例代码中,我们加载了自定义字体并将其应用于 JLabel
组件和整个应用程序。这将使我们的应用程序看起来更加个性化。