Нет выхода после нажатия ОК - PullRequest
0 голосов
/ 03 ноября 2018

у меня есть

if (e.getSource()==click && meno.getText().equals("")) {
    ulozMeno = meno.getText();
    JOptionPane.showMessageDialog(null, "Nothing entered.");
    System.exit(0);
}

Мне нужно настроить, что если я выйду из showMessageDialog или нажму ok, чтобы программа продолжала

1 Ответ

0 голосов
/ 04 ноября 2018

Поскольку вы можете подумать, что ваш вопрос в глубине, предоставленные комментарии определенно ответят на него. Ваш вопрос и код в нем не дают общую картину (или любую картину в этом отношении). Вам нужно немного лучше объяснить, почему и что вы пытаетесь достичь. Прочитайте это, когда у вас будет время.

По предоставленному коду, похоже, что вы находитесь в каком-то методе события, и вы просто хотите сообщить пользователю, что ничего не было введено, возможно, в JTextField какого-либо рода (вы не указываете ). В этом случае вы на самом деле не хотите выходить из приложения, вы просто хотите выйти из самого события, которое затем дает пользователю возможность что-то ввести. В этом случае замените System.exit(0); на return;, чтобы обойти любую обработку ниже в коде события, если meno фактически содержит что-то.

Если вы намерены также разрешить пользователю возможность выхода из приложения, то, возможно, вам следует использовать метод JOptionPane.showOptionDialog () , который позволяет вам укажите, что отображают ваши кнопки, например:

if (e.getSource() == click && meno.getText().equals("")) {
    String[] buttonOptions = {"Retry Entry", "Cancel", "Exit Application"};
    int result = JOptionPane.showOptionDialog(this, "No Text was Entered!",
            "Your Dialog Title", JOptionPane.YES_NO_CANCEL_OPTION,
            JOptionPane.INFORMATION_MESSAGE, null, buttonOptions,
            "Retry Entry");

    switch (result) {
        // Retry Entry
        case JOptionPane.YES_OPTION:
            System.out.println("Retry Entry button selected!");
            meno.requestFocus();
            return;
        // Cancel
        case JOptionPane.NO_OPTION:
            System.out.println("Cancel button selected!");
            return;
        // Exit Application
        case JOptionPane.CANCEL_OPTION:
            System.out.println("Exit Application button selected!");
            System.exit(0);
    }
}

String ulozMeno = meno.getText();
// .... The rest of your code here ...

В этом диалоговом окне пользователь информируется о том, что в meno ничего не было предоставлено, и предоставляет этому пользователю возможность ввести что-либо, нажав кнопку Retry Entry , которая также устанавливает Фокус на текстовое поле. Пользователю также предоставляется возможность отменить процесс (каким бы он ни был), выбрав кнопку Cancel . И, наконец, Пользователю предоставляется еще один вариант полного выхода из приложения путем выбора кнопки Выход из приложения .

...