Ayuda JavaFX FXML

Iniciado por MC.cover, 15 Diciembre 2016, 00:54 AM

0 Miembros y 1 Visitante están viendo este tema.

MC.cover

Hola muy buenas estoy practicando con JavaFx en FXML y tengo 2 ventanas la principal y una a la cual se accede haciendo click en un botón especifico de la primera ventana
la cosa esta en que quiero poder de la segunda ventana volver a la primera he intentado por un montón de medios y no he podido.
Ventana principal:
Al realizar click en el boton registrarse redirige a esta ventana:


Yo quiero que al darle click al botón volver vuelva a la ventana de LogIn.
Codigo de ventana principal:
Código (java) [Seleccionar]
public class frmLogIn extends Application{

    public Stage stage = new Stage();
   
    @Override
    public void start(Stage primaryStage) throws Exception {
        try {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocumentLogIn.fxml"));
       
        Scene scene = new Scene(root);
       
        stage.getIcons().add(new Image("/Imgs/User.png"));
        stage.setTitle("LogIn");
        stage.setResizable(false);
        stage.centerOnScreen();
        stage.setScene(scene);
        stage.show();
           
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
   
    public void CloseLogIn(){ stage.close(); }

    public static void main(String[]args){ launch(args); }


Codigo logica de ventana LogIn:
Código (java) [Seleccionar]
public class FXMLDocumentLogInController implements Initializable {
   
    @FXML
    protected JFXButton BtnLogIn;
   
    @FXML
    private JFXButton BtnSignUp;

    @FXML
    private JFXTextField TxtUser;
   
    @FXML
    private JFXPasswordField TxtPassword;
   
    @FXML
    void BtnLogIn_Clicked(ActionEvent event) {
           
    }
   
    @FXML
    void BtnSignUp_Clicked(ActionEvent event) {
        frmRegister regis = new frmRegister();
        Stage stage = (Stage) BtnLogIn.getScene().getWindow();
              stage.close();
                    regis.ShowRegister();
    }
   
    @Override
    public void initialize(URL url, ResourceBundle rb) {    }   


Codigo ventana Registrarse:
Código (java) [Seleccionar]
public class frmRegister {
   
   public Stage stage = new Stage();
   
    public void ShowRegister(){
        try {
            FXMLLoader loader = new FXMLLoader(FXMLDocumentLogInController.class.getResource("FXMLDocumentRegister.fxml"));
            Parent frmRegister = (Parent) loader.load();
           
            stage.getIcons().add(new Image("/Imgs/User.png"));
            stage.setTitle("Registro");
            stage.centerOnScreen();
            stage.setResizable(false);
            stage.setScene(new Scene(frmRegister));
            stage.show();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
       
    }
   
    public void CloseRegister(){
        stage.close();
    }
}


Codigo logica visual Registrarse:
Código (java) [Seleccionar]
public class FXMLDocumentRegisterController implements Initializable {

    @FXML
    private JFXComboBox<?> CmbCountry;

    @FXML
    private JFXPasswordField TxtRePassword;

    @FXML
    private JFXTextField TxtName;

    @FXML
    private JFXButton BtnRegister;

    @FXML
    private JFXTextField TxtLastName;

    @FXML
    private JFXPasswordField TxtPassword;

    @FXML
    private JFXTextField TxtUser;

    @FXML
    private JFXButton BtnBack;

    @FXML
    void BtnBack_Clicked(ActionEvent event) {
            //aca se encuentra mi problema
    }
   
    @FXML
    void BtnRegister_Clicked(ActionEvent event) {

    }
   
    @Override
    public void initialize(URL url, ResourceBundle rb) {    }   
   
}


ha y una cosa mas me podrían decir como separar el método main de la visual de LogIn ya he intentado pero me d error al compilar al retirarlo de esa clase y poniéndola en una nueva.
Bueno hasta aca lo que serian mis dudas espero me puedan ayudar.
Desde ya muchas gracias :)

kingcreek

#1
No he trabajado FXML pero prueba el siguiente esquema:
Login, presiona en registrar, llamas a la ventana de registrar con .show() y usas .hide() en la ventana de login.
Despues del registro, llamas a .close() en la ventana de registro y .show() a la de login.

Respecto a tu segunda duda, no sabria decirte, deberia descargarme el compilador y verlo.

MC.cover

Cita de: kingcreek en 15 Diciembre 2016, 04:15 AM
No he trabajado FXML pero prueba el siguiente esquema:
Login, presiona en registrar, llamas a la ventana de registrar con .show() y usas .hide() en la ventana de login.
Despues del registro, llamas a .close() en la ventana de registro y .show() a la de login.

Respecto a tu segunda duda, no sabria decirte, deberia descargarme el compilador y verlo.

Muchas gracias ya pude resolver. :)