Não consigo fechar meu modal [RESOLVIDO]

4 respostas Resolvido
programaçãobotaojava
H

Minha classe está assim:

public class FormSucessoConfirmacao extends Application {

static Stage tela;

@Override
public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLFormSucessoConfirmacao.fxml"));
    Scene scene = new Scene(root);
    stage.setScene(scene);
    stage.setTitle("Mensagem do sistema...");
    stage.setResizable(false);
    stage.initModality(Modality.APPLICATION_MODAL);
    stage.showAndWait();
    tela = stage;
}}

A programação do botão está da seguinte maneira:

@FXML
public void fecharTela() {
    FormSucessoConfirmacao.tela.close();
}

O problema se encontrou quando mudei de .show() para .showAndWait(), após isso não consegui mais fechar o meu modal com o mesmo comando…

4 Respostas

R

Faltou vc colocar o erro que ocorreu. E voltaremos novamente ao NullPointer no seu código como na discussão anterior.

H
Caused by: java.lang.NullPointerException

at alert.AlertaController.positiveCase(AlertaController.java:51)
… 121 more


O erro é esse apontando para esta linha:

FormSucessoConfirmacao.tela.close();
R
Solucao aceita
Significa que algo nesta linha está nulo, caso FormSucessoConfirmacao seja uma classe, então a variável <strong>tela</strong> é nula.<blockquote><div class="quote-author">“Hiagomf:</div>

stage.showAndWait();

tela = stage;

</blockquote>

Repare que vc apenas instancia a var <strong>tela</strong> depois de fechar a modal, ai com certeza será nula. Tenta apenas inverter estas duas linhas.
H

Repare que vc apenas instancia a var tela depois de fechar a modal, ai com certeza será nula. Tenta apenas inverter estas duas linhas.


Amigo o problema era só esse mesmo, muito obrigado!

tela = stage; stage.showAndWait();

Criado 2 de outubro de 2017
Ultima resposta 5 de out. de 2017
Respostas 4
Participantes 2