Tengo un JDialog clase denominada Preferences. Esta clase crea un constructor como:

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

En mi programa yo quiero este cuadro de diálogo preferencias para abrir como hago clic en un botón de una JFrame forma. Después me inscribí en la acción de escucha en el botón, escribí el código en el interior como:

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

Cuando ejecuto este código me sale el siguiente excepción (como 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 solucionarlo?

InformationsquelleAutor Suhail Gupta | 2011-12-07

3 Comentarios

  1. 13

    ¿Qué significa esto..

    Un contenedor de nivel superior (de diálogo) no se puede agregar a otro (cuadro).

    ..y ¿cómo puedo solucionar esto ?

    Acaba de llamar setVisible(true) en el Preferences de diálogo, en lugar de la adición.

  2. 6

    Que no agrega el JDialog para el JFrame, que no tiene ningún sentido desde el add(...) método para agregar componentes a mostrarse en el contenedor, no por el contenedor. Mostrar el JDialog desde el JFrame del JButton del ActionListener. Además, no puede ser la mezcla de AWT (Marco) de los componentes y los componentes Swing juntos por ninguna buena razón.

    Su pregunta sugiere que usted se beneficiará en gran medida por ir a través de la Oscilación de los tutoriales.

    • En realidad él estaba intentando agregar a un Marco en lugar de un JFrame. No es que haga mucha diferencia en su punto.

Dejar respuesta

Please enter your comment!
Please enter your name here