JOptionPane.showMessageDialog attendre jusqu'à ce que vous cliquez sur OK?

Cela peut être une chose très simple que je suis dominant, mais je n'arrive pas à le comprendre.

J'ai la méthode suivante qui met à jour une JTable:

class TableModel extends AbstractTableModel {    
        public void updateTable() {
            try {
                //update table here
             ...
    } catch (NullPointerException npe) {
                isOpenDialog = true;
                JOptionPane.showMessageDialog(null, "No active shares found on this IP!");
                isOpenDialog = false;
            }
        }
    }

Cependant, je ne veux pas isOpenDialog booléen à false jusqu'à ce que le bouton OK dans la boîte de dialogue de message est pressé, parce que si un utilisateur appuie sur entrée, il activera un KeyListener événement sur un textfield et il déclenche l'ensemble de ce bloc de code nouveau, si elle est définie à false.

Partie de la KeyListener code est indiqué ci-dessous:

public class KeyReleased implements KeyListener {
        ...

    @Override
    public void keyReleased(KeyEvent ke) {
        if(txtIPField.getText().matches(IPADDRESS_PATTERN)) {
            validIP = true;
        } else {
            validIP = false;
        }

        if (ke.getKeyCode() == KeyEvent.VK_ENTER) {
            if (validIP && !isOpenDialog) {
                updateTable();
            }
        }
    }
}

Ne JOptionPane.showMessageDialog() avoir une sorte de mécanisme qui empêche l'exécution de la ligne suivante jusqu'à ce que le bouton OK est pressée? Merci.

InformationsquelleAutor swiftcode | 2012-06-09