如何在 Java gui 应用程序中更改字体?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24278648/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-14 11:15:21  来源:igfitidea点击:

How to change font in Java gui application?

java

提问by Siddharth

I wanted to change the font in my Java GUI application.

我想更改 Java GUI 应用程序中的字体。

Currently I am using Font newFont = new Font("Serif", Font.BOLD, 24);. To change the font.

目前我正在使用 Font newFont = new Font("Serif", Font.BOLD, 24); . 改变字体。

How can I use fonts like 'comic sans' or 'calibri' in my GUI based application in Java ?

如何在基于 GUI 的 Java 应用程序中使用“comic sans”或“calibri”等字体?

Currently I am using jdk 1.60.

目前我使用的是 jdk 1.60。

采纳答案by MadProgrammer

You could start by listing the available font names using something like...

您可以首先使用以下内容列出可用的字体名称...

String fonts[]
        = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

for (int i = 0; i < fonts.length; i++) {
    System.out.println(fonts[i]);
}

This a great little way of checking the font names.

这是检查字体名称的好方法。

If you did this, you would find that "Comic Sans" is listed as "Comic Sans MS", this means you'll need to use something like new Font("Comic Sans MS", Font.PLAIN, 24)to create a new font

如果你这样做,你会发现“Comic Sans”被列为“Comic Sans MS”,这意味着你需要使用类似的东西new Font("Comic Sans MS", Font.PLAIN, 24)来创建一个新字体

For example...

例如...

Font

字体

Showing: Comic Sans MS, Calibri, Look and feel default

显示:Comic Sans MS、Calibri、外观和感觉默认

public class TestPane extends JPanel {

    public TestPane() {
        setLayout(new GridBagLayout());
        JLabel label = new JLabel("Hello");
        label.setFont(new Font("Comic Sans MS", Font.PLAIN, 24));
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        add(label, gbc);

        label = new JLabel("Hello");
        label.setFont(new Font("Calibri", Font.PLAIN, 24));
        add(label, gbc);

        label = new JLabel("Hello");
        Font font = label.getFont();
        label.setFont(font.deriveFont(Font.PLAIN, 24f));
        add(label, gbc);
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(200, 200);
    }

}

回答by user3744406

I'm assuming you've tried putting comic sans and calibri in the constructor. If it didn't work make sure it is a valid font in your case. check with-

我假设您已经尝试在构造函数中放入漫画 sans 和 calibri。如果它不起作用,请确保它是您的情况下的有效字体。检查与 -

String FontList[]; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); FontList = ge.getAvailableFontFamilyNames();

String FontList[]; GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); FontList = ge.getAvailableFontFamilyNames();

FontList[] contains all the font types available

FontList[] 包含所有可用的字体类型