2011-04-15 8 views
7

Tengo un cuadro combinado. Después de seleccionar un elemento en el cuadro combinado, se abre el nuevo JDialog.Componente de oscilación y edición jdk problema

  1. Cuando uso JDK 1.6_06, soy capaz para hacer clic en los botones en JDialog correctamente.
  2. Cuando uso JDK 1.6_24, , entonces primero necesito hacer clic en JDialog. Entonces solo presionando el botón funciona. En primer lugar, pensé que esto es un problema con el enfoque. Pero el componente funciona bien con JDK 1.6_06. Pero es un problema solo con JDK 1.6_24.

He intentado googlearlo. Pero no encontré ninguna respuesta. ¿Alguien tiene alguna idea?

+0

¿Está utilizando ambos JDK en el mismo sistema? (¿Cuál?) Esto parece un problema del administrador de ventanas. –

+0

(aprovechó la oportunidad para actualizar de u23 a u24 :-) - pero no se puede reproducir. ¿Qué tal un pequeño ejemplo ejecutable que demuestre el problema? – kleopatra

+2

¿Alguna posibilidad de publicar un SSCCE? http://sscce.org/ –

Respuesta

0

@Todo: Aplogize para la respuesta tardía. Estaba probando diferentes escenarios. Y he encontrado que ese problema es con el enhebrado. Parece que el cuadro combinado aún no ha terminado su trabajo, y se abre jdialog. Y después de ese cuadro combinado intenta terminar su trabajo, por lo que el foco se pierde en la ventana principal. He intentado abrir diálogo en el seguimiento:

   new Thread() { 
        public void run() { 
         // open dialog here 
        } 
       }.start(); 

y trabaja muy bien. Ahora estoy planeando para abrir el diálogo utilizando SwingWorker:

    SwingWorker worker = new SwingWorker() { 
       @Override 
       protected Object doInBackground() throws Exception { 
        // TODO Auto-generated method stub 
        // open dialog here 
        return null; 
       } 
       }; 

Esto también está trabajando. Espero que este sea el camino correcto. Por favor, avíseme si estoy haciendo lo correcto.

+0

SwingWorker no se usa para este propósito. ¿Puede publicar cómo está abriendo el cuadro de diálogo? ¿Se está abriendo en un oyente en el cuadro combinado? – KDM

1

No sé acerca de las versiones de Java, pero al poner dialog.setVisible (true) en SwingUtilities # invokeLater resolvió este problema hace algún tiempo. YMMV.

+0

El uso de show() está en desuso, mejor uso 'setVisible (true)' – MByD

+0

lo corrigió. Gracias. – KDM

+0

Lo probé, pero no funcionó para mí :( – user613114