首页 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板