按确定后无退出

时间:2018-11-03 19:21:40

标签: java dialog message

我有这个

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

我需要进行设置,如果我退出showMessageDialog或按OK,则要继续编程

1 个答案:

答案 0 :(得分:0)

从深度上看,您可能会认为您的问题是,提供的评论建议绝对可以回答该问题。您的问题及其中的代码并没有给您提供全面的信息(或与此相关的任何信息)。您需要更好地解释为什么以及您要完成什么。 Give this a read when you have time.

通过提供的代码,您似乎在某种事件方法之内,而您只想通知用户在某种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 ...

通过此对话框,通知用户菜单中未提供任何内容,并通过选择 重试条目 按钮,也可以将焦点设置在文本字段上。通过选择 取消 按钮,用户还可以选择取消该过程(无论如何)。最后,通过选择 Exit Application (退出应用程序) 按钮,为用户提供了另一种完全退出应用程序的选项。