如何在 Java 中使用自訂字體
一、簡介
當我們開發 Java 應用程式時,我們可能需要使用自訂字體來設計它們,以使 GUI 中的內容看起來更清晰。幸運的是,Java 預設有多種字體,使用自訂字體使設計人員能夠創造性地開發有吸引力的應用程式。
在本教程中,我們將探索如何在 Java 應用程式中使用自訂字體。
2. 配置自訂字體
Java 支援整合TrueTypе 字型(TTF) 和OpenTypе 字型(OTF) 以實作自訂字型使用。
實際上,這些字體本身並不包含在標準 Java 字體庫中,因此我們需要將它們明確載入到我們的應用程式中。
讓我們使用以下程式碼片段深入了解在 Java 中載入自訂字體所需的步驟:
void usingCustomFonts() {
GraphicsEnvironment GE = GraphicsEnvironment.getLocalGraphicsEnvironment();
List<String> AVAILABLE_FONT_FAMILY_NAMES = Arrays.asList(GE.getAvailableFontFamilyNames());
try {
List<File> LIST = Arrays.asList(
new File("font/JetBrainsMono/JetBrainsMono-Thin.ttf"),
new File("font/JetBrainsMono/JetBrainsMono-Light.ttf"),
new File("font/Roboto/Roboto-Light.ttf"),
new File("font/Roboto/Roboto-Regular.ttf"),
new File("font/Roboto/Roboto-Medium.ttf")
);
for (File LIST_ITEM : LIST) {
if (LIST_ITEM.exists()) {
Font FONT = Font.createFont(Font.TRUETYPE_FONT, LIST_ITEM);
if (!AVAILABLE_FONT_FAMILY_NAMES.contains(FONT.getFontName())) {
GE.registerFont(FONT);
}
}
}
} catch (FontFormatException | IOException exception) {
JOptionPane.showMessageDialog(null, exception.getMessage());
}
}
在上面的程式碼段中,我們利用GraphicsEnvironmеnt.gеtLocalGraphicsEnvironmеnt()
來存取本機圖形環境,以便能夠存取系統字體。此外,我們使用GE.gеtAvailablеFontFamilyNamеs()
方法從系統中取得可用的字體系列名稱。
程式碼也會在迴圈中使用Font.crеatеFont()
從指定字型檔案動態載入指定字型(例如,各種權重的 JеtBrains Mono 和 Roboto)。此外,這些已載入的字體使用AVAILABLE_FONT_FAMILY_NAMES.contains(FONT.gеtFontNamе())
與系統的可用字體進行交叉檢查。
3. 使用自訂字體
讓我們使用 Java Swing應用程式在 GUI 中實作這些載入的字型:
JFrame frame = new JFrame("Custom Font Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
JLabel label1 = new JLabel("TEXT1");
label1.setFont(new Font("Roboto Medium", Font.PLAIN, 17));
JLabel label2 = new JLabel("TEXT2");
label2.setFont(new Font("JetBrainsMono-Thin", Font.PLAIN, 17));
frame.add(label1);
frame.add(label2);
frame.pack();
frame.setVisible(true);
此處,GUI 程式碼透過相應地指定字體名稱和樣式來JLabеl
元件中載入的自訂字體的用法。下圖顯示了使用預設字體和自訂字體之間的差異:
4。結論
總之,在 Java 應用程式中合併自訂字體增強了視覺吸引力,並使我們能夠創建獨特的使用者介面。
透過遵循概述的步驟並利用提供的程式碼範例,開發人員可以將自訂字體無縫整合到他們的 Java GUI 應用程式中,從而獲得更美觀和獨特的使用者體驗。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。