JOptionPane.showMessageDialog ждать, пока нажата OK?

Это может быть очень простая вещь, которую я с видом, но я просто не могу понять это.

У меня есть следующий метод, который обновляет 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;
            }
        }
    }

Тем не менее, я не хочу isOpenDialog булево быть установлен в FALSE, пока кнопка OK в диалоговом окне сообщения не будет нажата, потому что, если пользователь нажимает ввести его активирует KeyListener событие на текстовое поле и это вызывает, что весь блок кода снова, если он установлен в положение неверен .

Часть кода KeyListener показано ниже:

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();
            }
        }
    }
}

ли JOptionPane.showMessageDialog () есть какой-то механизм, который предотвращает исполняющие следующую строку, пока кнопка ОК не будет нажата? Спасибо.

5
задан mKorbel 10 June 2012 в 09:03
поделиться