Exceção: adicionando uma janela a um contêiner. Como resolvê-lo?

Eu tenho umJDialog classe chamadaPreferences. Esta classe cria um construtor como:

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

No meu programa, desejo que essa caixa de diálogo de preferências seja aberta ao clicar em um botão de umJFrame Formato. Depois de registrar o ouvinte de ação no botão, escrevi o código dentro como:

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

Quando executo esse código, recebo a seguinte exceção (quando clico no botão):

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

O que isso significa e como posso resolvê-lo?

questionAnswers(3)

yourAnswerToTheQuestion