首頁 > Java > java教程 > 如何以程式設計方式列出和預覽 Java 應用程式中的可用字體?

如何以程式設計方式列出和預覽 Java 應用程式中的可用字體?

DDD
發布: 2024-10-31 11:12:01
原創
1056 人瀏覽過

How can I programmatically list and preview available fonts in a Java application?

取得有關字型的資訊

在 Java 中,您可以透過 GraphicsEnvironment 類別存取系統字型。若要取得所有可用字體系列名稱的數組,請使用以下程式碼:

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

可以在運行時動態設定字體大小和樣式。考慮以下示例,該示例顯示一個字體選擇器以及每種字體的預覽:

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

public class ShowFonts {

    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>
登入後複製

其他資源

  • GraphicsEnvironment.getAvailableFontFamilyNames(): https ://docs.oracle.com/javase/7/docs/api/java/awt/GraphicsEnvironment.html#getAvailableFontFamilyNames()
  • DefaultListCellRenderer:https://docs.oracle.com/javase/8 / docs/api/javax/swing/DefaultListCellRenderer.html
  • 字體選擇器:https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#font_fonts

以上是如何以程式設計方式列出和預覽 Java 應用程式中的可用字體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板