Exception: agregar una ventana a un contenedor. ¿Cómo resolverlo

Tengo unJDialog clase llamadaPreferences. Esta clase crea un constructor como:

class Preferences extends javax.swing.JDialog {
          Preferences(java.awt.Frame parent,modal)  {
                      super(parent,modal);
                      //......
          }
}

En mi programa quiero que este diálogo de preferencias se abra cuando hago clic en un botón de unaJFrame formulario. Después de registrar el oyente de acción en el botón, escribí el código dentro como:

Frame fr = new Frame();
Preferences p = new Preferences(fr,false);
fr.add(p);
fr.setVisible(true);

Cuando ejecuto este código, aparece la siguiente excepción (cuando hago clic en el botón):

Exception in thread "AWT-EventQueue-0" 
    java.lang.IllegalArgumentException: adding a window to a container

¿Qué significa esto y cómo puedo resolverlo?

Respuestas a la pregunta(6)

Su respuesta a la pregunta