如何以不同的字体显示文字?(How to display text in different fonts?)
优质
小牛编辑
123浏览
2023-12-01
问题描述 (Problem Description)
如何以不同的字体显示文字?
解决方案 (Solution)
下面的示例演示如何使用Font类的setFont()方法以不同的字体显示文本。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JPanel {
String[] type = { "Serif","SansSerif"};
int[] styles = { Font.PLAIN, Font.ITALIC, Font.BOLD, Font.ITALIC + Font.BOLD };
String[] stylenames = { "Plain", "Italic", "Bold", "Bold & Italic" };
public void paint(Graphics g) {
for (int f = 0; f < type.length; f++) {
for (int s = 0; s < styles.length; s++) {
Font font = new Font(type[f], styles[s], 18);
g.setFont(font);
String name = type[f] + " " + stylenames[s];
g.drawString(name, 20, (f * 4 + s + 1) * 20);
}
}
}
public static void main(String[] a) {
JFrame f = new JFrame();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setContentPane(new Main());
f.setSize(400,400);
f.setVisible(true);
}
}
结果 (Result)
上面的代码示例将产生以下结果。
Different font names are displayed in a frame.
以下是以不同字体显示文本的另一个示例示例
import java.awt.*;
import javax.swing.*;
public class Main extends JComponent {
String[] dfonts;
Font[] font;
static final int IN = 15;
public Main() {
dfonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
font = new Font[dfonts.length];
}
public void paintComponent(Graphics g) {
for (int j = 0; j < dfonts.length; j += 1) {
if (font[j] == null) {
font[j] = new Font(dfonts[j], Font.PLAIN, 16);
}
g.setFont(font[j]);
int p = 15;
int q = 15+ (IN * j);
g.drawString(dfonts[j],p,q);
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Different Fonts");
frame.getContentPane().add(new JScrollPane(new Main()));
frame.setSize(350, 650);
frame.setVisible(true);
}
}