JOptionPane - vérifier la saisie de l'utilisateur et de le prévenir de la fermeture jusqu'à ce que les conditions sont remplies

Svp quelqu'un peut me dire si il existe un moyen pratique d'éviter JOptionPane à compter de la clôture après avoir cliqué sur OK, à moins que les conditions pour l'utilisateur, les champs d'entrée sont remplies?

Ou dois-je pas d'autre choix que d'utiliser JFrame?

Ma logique de validation jusqu'à présent. Ne semble pas fonctionner parce que les boutons sont cliquables pour une raison...

final JDialog dialog3 = new JDialog(OmniGUI.getFrame(), "Create new Node - id:" + newNodeID);
dialog3.setContentPane(theOPane);
dialog3.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

theOPane.addPropertyChangeListener(new PropertyChangeListener(){
   public void propertyChange(PropertyChangeEvent e) {

       if(e.getSource() == theOPane){
           String val = (String) ((JOptionPane) e.getSource()).getValue();

           if(val=="Create"){
               System.out.println("Checking content");                      

               if(!valid){
                   System.out.println("closing the window");    

                   dialog3.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                   dialog3.removeAll();
                   dialog3.dispatchEvent(new WindowEvent(dialog3, WindowEvent.WINDOW_CLOSING));
               }

           }
       }
   }    
});

    dialog3.setLocation(p);
    dialog3.pack();
    dialog3.setVisible(true);
Quelle méthode utilisez-vous? showConfirmDialog, showInputDialog?
Je suis à l'aide de JDialog de createDialog ou setContentPane, mais je pourrais aller avec n'importe quoi si cela ne fonctionne pas

OriginalL'auteur bioMind | 2012-10-24