2D Graphics Java Tutorial

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class FontStyleSizeFamilyChooser extends JFrame {
  public static void main(String[] args) {
    new FontStyleSizeFamilyChooser();
  }
  private JLabel sampleText = new JLabel("Label");
  private JComboBox fontComboBox;
  private JComboBox sizeComboBox;
  private JCheckBox boldCheck, italCheck;
  private String[] fonts;
  public FontStyleSizeFamilyChooser() {
    this.setSize(500, 150);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    FontListener fl = new FontListener();
    this.add(sampleText, BorderLayout.NORTH);
    GraphicsEnvironment g = GraphicsEnvironment.getLocalGraphicsEnvironment();
    fonts = g.getAvailableFontFamilyNames();
    JPanel controlPanel = new JPanel();
    fontComboBox = new JComboBox(fonts);
    fontComboBox.addActionListener(fl);
    controlPanel.add(new JLabel("Family: "));
    controlPanel.add(fontComboBox);
    Integer[] sizes = { 7, 8, 9, 10, 11, 12, 14, 18, 20, 22, 24, 36 };
    sizeComboBox = new JComboBox(sizes);
    sizeComboBox.setSelectedIndex(5);
    sizeComboBox.addActionListener(fl);
    controlPanel.add(new JLabel("Size: "));
    controlPanel.add(sizeComboBox);
    boldCheck = new JCheckBox("Bold");
    boldCheck.addActionListener(fl);
    controlPanel.add(boldCheck);
    italCheck = new JCheckBox("Ital");
    italCheck.addActionListener(fl);
    controlPanel.add(italCheck);
    this.add(controlPanel, BorderLayout.SOUTH);
    fl.updateText();
    this.setVisible(true);
  }
  private class FontListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      updateText();
    }
    public void updateText() {
      String name = (String) fontComboBox.getSelectedItem();
      Integer size = (Integer) sizeComboBox.getSelectedItem();
      int style;
      if (boldCheck.isSelected() && italCheck.isSelected())
        style = Font.BOLD | Font.ITALIC;
      else if (boldCheck.isSelected())
        style = Font.BOLD;
      else if (italCheck.isSelected())
        style = Font.ITALIC;
      else
        style = Font.PLAIN;
      Font f = new Font(name, style, size.intValue());
      sampleText.setFont(f);
    }
  }
}