Como faço para clicar em um botão e abrir uma nova tela?

12/08/2016

0

package view;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;

public class Login extends Application {
@Override
public void start(Stage stage) throws Exception {

Parent root = FXMLLoader.load(getClass().getResource("Login.fxml"));

Scene scene = new Scene(root, 400, 240);
stage.setTitle("FXML Welcome");
stage.setScene(scene);
stage.show();
}

-----------------------------------------------------------------------------------------------------------------------------------------------------------

package controller;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import view.TelaPrincipal;

public class LoginController {

@FXML private Text actiontarget;
@FXML protected void handleSubmitButtonAction(ActionEvent event) throws Exception {
// actiontarget.setText("Botão Pressionado");

Stage stage = null;
new TelaPrincipal().start(stage);


}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------
package view;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class TelaPrincipal extends Application {

@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("TelaPrincipal.fxml"));

Scene scene = new Scene(root, 400, 240);
stage.setScene(scene);
stage.show();
}

}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Esse é o erro que estou tomando.

Caused by: java.lang.NullPointerException
at view.TelaPrincipal.start(TelaPrincipal.java:16)
at controller.LoginController.handleSubmitButtonAction(LoginController.java:18)
... 58 more

Na Class LoginController quando clico no botão na tela de Login gostaria que a tela de Login fechasse e abrisse a tela da Class TelaPrincipal.

Por que isso não acontece? Onde estou errando?

Obrigado a todos,
Jurandyr
Jurandyr Alves

Jurandyr Alves

Responder

Posts

12/08/2016

Jurandyr Alves

Pessoal fiz uma pequena alteração no código mais ainda não funciona:

package controller;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;


public class LoginController {


@FXML protected void handleSubmitButtonAction(ActionEvent event) throws Exception {


Stage stage = null;
Parent root = FXMLLoader.load(getClass().getResource("TelaPrincipal.fxml"));
Scene scene = new Scene(root, 400, 240);
stage.setScene(scene);
stage.show();



}

}
Responder

12/08/2016

Jurandyr Alves

Consegui.

:smile:

package controller;

import java.io.IOException;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class LoginController {

@FXML protected void handleSubmitButtonAction(ActionEvent event) {

try {

Parent root = FXMLLoader.load(getClass().getResource("TelaPrincipal.fxml"));
Stage stage = new Stage();
Scene scene = new Scene(root, 400, 240);
stage.setScene(scene);
stage.show();

} catch (IOException e) {
e.printStackTrace();
}


}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar