Swing JFC Java

/*
Java Swing, 2nd Edition
By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
ISBN: 0-596-00408-7
Publisher: O'Reilly 
*/
// SelectionMonitor.java
//A graphical list selection monitor.
//
import java.awt.BorderLayout;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class SelectionMonitor extends JPanel {
  String label[] = { "Zero", "One", "Two", "Three", "Four", "Five", "Six",
      "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve" };
  JCheckBox checks[] = new JCheckBox[label.length];
  JList list;
  public SelectionMonitor() {
    setLayout(new BorderLayout());
    list = new JList(label);
    JScrollPane pane = new JScrollPane(list);
    //  Format the list and the buttons in a vertical box
    Box rightBox = new Box(BoxLayout.Y_AXIS);
    Box leftBox = new Box(BoxLayout.Y_AXIS);
    //  Monitor all list selections
    list.addListSelectionListener(new RadioUpdater());
    for (int i = 0; i < label.length; i++) {
      checks[i] = new JCheckBox("Selection " + i);
      checks[i].setEnabled(false);
      rightBox.add(checks[i]);
    }
    leftBox.add(pane);
    add(rightBox, BorderLayout.EAST);
    add(leftBox, BorderLayout.WEST);
  }
  public static void main(String s[]) {
    JFrame frame = new JFrame("Selection Monitor");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(new SelectionMonitor());
    frame.pack();
    frame.setVisible(true);
  }
  // Inner class that responds to selection events to update the buttons
  class RadioUpdater implements ListSelectionListener {
    public void valueChanged(ListSelectionEvent e) {
      //  If either of these are true, the event can be ignored.
      if ((!e.getValueIsAdjusting()) || (e.getFirstIndex() == -1))
        return;
      //  Change the radio button to match the current selection state
      //  for each list item that reported a change.
      for (int i = e.getFirstIndex(); i <= e.getLastIndex(); i++) {
        checks[i].setSelected(((JList) e.getSource())
            .isSelectedIndex(i));
      }
    }
  }
}