package javacodebook.media.findfonts;

import java.awt.*;
import javax.swing.*;

/**
 * Ermitteln der Schriftarten und Anzeige in einer DropDown-Liste
 */
public class FontChooser extends javax.swing.JFrame {

    private javax.swing.JPanel jPanel1;

    public FontChooser() {
        initComponents();
        //Die Schriftarten werden über die Klasse GraphicsEnvironment ermittelt
        GraphicsEnvironment env =
            GraphicsEnvironment.getLocalGraphicsEnvironment();
        //Schriftarten-Namen werden als StringArray zurückgegeben.
        String[] fontNames = env.getAvailableFontFamilyNames();
        //JComboBox wird direkt mit dem Array initialisiert
        JComboBox fontBox = new JComboBox(fontNames);
        jPanel1.add(fontBox);
        pack();
    }

    /**
     * Zeichnen der Komponenten für Frame und Panel
     */
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();

        setTitle("Schriftarten");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));

        jPanel1.setPreferredSize(new java.awt.Dimension(300, 35));
        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);

        pack();
    }

    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

    public static void main(String args[]) {
        new FontChooser().show();
    }
}
