FontList.java Source code

Java tutorial

Introduction

Here is the source code for FontList.java

Source

/*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book (recommended),
 * visit http://www.davidflanagan.com/javaexamples2.
 */

import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * An applet that displays the standard fonts and styles available in Java 1.1
 */
public class FontList extends JPanel {
    // The available font families
    String[] families = { "Serif", // "TimesRoman" in Java 1.0
            "SansSerif", // "Helvetica" in Java 1.0
            "Monospaced" }; // "Courier" in Java 1.0

    // The available font styles and names for each one
    int[] styles = { Font.PLAIN, Font.ITALIC, Font.BOLD, Font.ITALIC + Font.BOLD };

    String[] stylenames = { "Plain", "Italic", "Bold", "Bold Italic" };

    // Draw the applet.
    public void paint(Graphics g) {
        for (int f = 0; f < families.length; f++) { // for each family
            for (int s = 0; s < styles.length; s++) { // for each style
                Font font = new Font(families[f], styles[s], 18); // create font
                g.setFont(font); // set font
                String name = families[f] + " " + stylenames[s]; // create name
                g.drawString(name, 20, (f * 4 + s + 1) * 20); // display name
            }
        }
    }

    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 FontList());
        f.setSize(300, 300);
        f.setVisible(true);
    }

}