Java 示例 - 以不同的字体显示文本
-
问题描述
如何以不同的字体显示文本? -
解决方案
下面的示例演示了如何使用 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); } }
-
结果
上面的代码示例将产生以下结果。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); } }