将字体导入GUI

1 java user-interface fonts swing awt

我试图改变我的GUI的字体,除了基本的5,摇摆似乎随之而来.如何导入字体并在我的代码中实际使用它们?

And*_*son 6

默认情况下通常有5个以上可用,但它们会在不同系统之间变化.此答案检查现有字体,以及如何加载和注册新字体.

它使用了下载免费字体(通过热门链接URL获得)提供的'Airacobra Condensed'字体.应用程序Jar中的字体.也可以通过URL访问.

注册字体

import java.awt.*;
import javax.swing.*;
import java.net.URL;

class LoadFont {
    public static void main(String[] args) throws Exception {
        // This font is < 35Kb.
        URL fontUrl = new URL("http://www.webpagepublicity.com/" +
            "free-fonts/a/Airacobra%20Condensed.ttf");
        Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
        GraphicsEnvironment ge = 
            GraphicsEnvironment.getLocalGraphicsEnvironment();
        ge.registerFont(font);
        JList fonts = new JList( ge.getAvailableFontFamilyNames() );
        JOptionPane.showMessageDialog(null, new JScrollPane(fonts));
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,这很有趣,但这个字体实际上是什么样的?

显示字体

import java.awt.*;
import javax.swing.*;
import java.net.URL;

class DisplayFont {
    public static void main(String[] args) throws Exception {
        URL fontUrl = new URL("http://www.webpagepublicity.com/" +
            "free-fonts/a/Airacobra%20Condensed.ttf");
        Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
        font = font.deriveFont(Font.PLAIN,20);
        GraphicsEnvironment ge =
            GraphicsEnvironment.getLocalGraphicsEnvironment();
        ge.registerFont(font);

        JLabel l = new JLabel(
            "The quick brown fox jumped over the lazy dog. 0123456789");
        l.setFont(font);
        JOptionPane.showMessageDialog(null, l);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1使用示例,屏幕截图和所有内容的答案.这是roll的royce答案 (3认同)