/**
   * Registers a listener on the specified font chooser.
   *
   * <p>The specified listener will receive calls to its <code>setFont</code> method whenever the
   * font chooser has been updated.
   *
   * @param fontChooser chooser to monitor.
   * @param previewComponent component whose font should be tied to that of the chooser
   */
  protected void addFontChooserListener(FontChooser fontChooser, JComponent previewComponent) {
    // Update button font when a new font has been chosen in the FontChooser
    if (fontChooser != null) {
      ChangeListener listener;
      fontChooser.addChangeListener(listener = new PreviewFontChooserListener(previewComponent));
      previewComponent.setFont(fontChooser.getCurrentFont());

      // Hold a reference to this listener to prevent garbage collection
      listenerReferences.add(listener);
    }
  }