Попробуйте Catch Block с входным диалогом - PullRequest
0 голосов
/ 19 ноября 2011

Есть ли способ заставить этот кусок кода работать? Единственная проблема, с которой я столкнулся, заключается в том, что когда пользователь нажимает кнопку «Отмена», появляется диалоговое окно с сообщением.

public static void main(String[] args) {
    try {
        JOptionPane.showInputDialog("Enter something")
    } catch (Exception error) {
        JOptionPane.showMessageDialog("Something went wrong.");
    }
}

Ответы [ 4 ]

2 голосов
/ 19 ноября 2011

Я исправил ваш код, поэтому он компилируется:

import javax.swing.JOptionPane;

public class Example {
public static void main(String[] args) {

    try {
        JOptionPane.showInputDialog("Enter something");
    } catch (Exception error) {
        error.printStackTrace();
        JOptionPane.showMessageDialog(null, "Something went wrong.");
    }
}

}

И работает нормально, когда запускается, нажимаю ли я кнопку «отмена» или «ок». Исключение не выбрасывается.

Я подозреваю, что в вашем действительном коде есть что-то еще, кроме того, что вы опубликовали.

1 голос
/ 19 ноября 2011
import javax.swing.*;

class GetInput {

    public static void getInput() {
        String result = JOptionPane.showInputDialog(null, "Enter something");
        if (result==null) {
            System.out.println("User cancelled action.");
        } else {
            System.out.println("User entered '" + result + "'.");
        }
    }

    public static void main (String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                getInput();
                getInput();
            }
        });
    }
}

Типичный выход

User entered 'this code runs!'.
User cancelled action.
Press any key to continue . . .
1 голос
/ 19 ноября 2011

Когда они нажимают Отмена, вы получаете ноль назад. Я подозреваю, что вы получаете NPE, которого поймали. Проверьте возвращаемое значение для нуля.

0 голосов
/ 28 мая 2016
try{
    //some code ;)                 
} catch(Exception e) {
    System.out.println(e.getMessage());
    JOptionPane.showMessageDialog(this, " erreur !!! :" + e.getMessage());   
}
...