首頁  >  文章  >  Java  >  如何在 Java 中存取和操作字體、大小和樣式?

如何在 Java 中存取和操作字體、大小和樣式?

Barbara Streisand
Barbara Streisand原創
2024-10-28 16:29:01484瀏覽

How do I access and manipulate fonts, sizes, and styles in Java?

在Java 中取得字體、大小、粗體等

在Java 程式中存取預先定義的字體、大小和顏色可能具有挑戰性。為了解決這個問題,讓我們探討如何有效地獲得這些元素。

GraphicsEnvironment

要檢索系統上可用的字體,請使用 GraphicsEnvironment 類別。它提供了 getAvailableFontFamilyNames() 方法,該方法傳回一個包含所有已安裝字體系列名稱的字串陣列。

<code class="java">GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fonts = ge.getAvailableFontFamilyNames();</code>

字體渲染

一旦擁有字體名稱,您可以建立具有所需屬性的字體物件。 Font 建構子採用三個參數:字型名稱、樣式、大小。例如,要建立大小為12 且粗體樣式的Arial 字體,請使用:

<code class="java">Font font = new Font("Arial", Font.BOLD, 12);</code>

大小和樣式

與字體不同,大小和樣式樣式可以在運行時動態設定。它們在 Font 類別中定義為常數,例如樣式的 Font.BOLD、Font.ITALIC 和 Font.PLAIN,以及大小的 Font.SIZE1、Font.SIZE2 等。

<code class="java">font.setBold(true);
font.setSize(14);</code>

範例

以下程式碼片段示範了一個Java 程序,該程式顯示一個字體選擇器,允許使用者選擇字體系列、大小和顏色:

<code class="java">import java.awt.*;
import javax.swing.*;

public class FontDemo {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            String[] fonts = ge.getAvailableFontFamilyNames();
            JComboBox fontChooser = new JComboBox(fonts);
            fontChooser.setRenderer(new FontCellRenderer());
            JOptionPane.showMessageDialog(null, fontChooser);
        });
    }
}

class FontCellRenderer extends DefaultListCellRenderer {

    @Override
    public Component getListCellRendererComponent(
            JList list,
            Object value,
            int index,
            boolean isSelected,
            boolean cellHasFocus) {
        JLabel label = (JLabel)super.getListCellRendererComponent(
                list,value,index,isSelected,cellHasFocus);
        Font font = new Font(value.toString(), Font.PLAIN, 20);
        label.setFont(font);
        return label;
    }
}</code>

JavaDoc

請參考GraphicsEnvironment.getAvailableFontFamilyNames() 的JavaDoc 以了解詳細資訊:

以上是如何在 Java 中存取和操作字體、大小和樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn