How do I exit JOptionPane without closing the Main window?

0

I'm trying to create a Java program in Calendar, but when I exit the JOptionPane setting the name of the Directory Owner, called by the main window, the entire application is closed.

String nome = "";
do{
    nome = JOptionPane.showInputDialog(null, "Informe o proprietário da Agenda", "Cadastro de proprietário",WIDTH);
    if(nome == null){
        System.exit(0);
    }
    else if(nome.isEmpty()){
        JOptionPane.showMessageDialog(null, "Campo não pode estar vazio!");
    }
    else{
        Agenda agenda = new Agenda(nome);
        JOptionPane.showMessageDialog(null, "A agenda do "+agenda.getNome()+" foi criada com sucesso!");
    }
}while(nome.isEmpty());

I know the problem is in System.exit(0) , but I do not know how I could solve it.

    
asked by anonymous 13.09.2018 / 15:49

1 answer

0

I think choosing a do while was not the best in this scenario, because when JOptionpane is closed, you already have that information in hand, which is the value return.

If the goal is to request the user a value, until it is valid, a while can be used:

public static void main(String[] args) {

    String nome = solicitarPropietario();

    while(nome == null || nome.isEmpty()) {
        JOptionPane.showMessageDialog(null, "Campo não pode estar vazio!");
        nome = solicitarPropietario();
    }

    Agenda agenda = new Agenda(nome);
    JOptionPane.showMessageDialog(null, "A agenda do " + agenda.getNome() + " foi criada com sucesso!");
}

public static String solicitarPropietario() {
    return JOptionPane.showInputDialog(null, "Informe o proprietário da Agenda", "Cadastro de proprietário");
}
    
13.09.2018 / 16:25