Swing JFC Java

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class List {
  public static void main(String[] args) {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] fonts = ge.getAvailableFontFamilyNames();
    final JLabel label = new JLabel("Text");
    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new JPanel();
    final JList list= new JList(fonts);
    list.addListSelectionListener(new ListSelectionListener() {
      public void valueChanged(ListSelectionEvent e) {
        if (!e.getValueIsAdjusting()) {
          String name = (String) list.getSelectedValue();
          Font font = new Font(name, Font.PLAIN, 12);
          label.setFont(font);
        }
      }
    });
    panel.add(new JScrollPane(list));
    f.add(label, BorderLayout.SOUTH);
    f.add(panel);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
  }
}