如何在 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
How to change font in Java gui application?
提问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...
例如...
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[] 包含所有可用的字体类型