Это может быть очень простая вещь, которую я с видом, но я просто не могу понять это.
У меня есть следующий метод, который обновляет 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 ()
есть какой-то механизм, который предотвращает исполняющие следующую строку, пока кнопка ОК не будет нажата? Спасибо.