Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MC.cover en 15 Diciembre 2016, 00:54 am



Título: Ayuda JavaFX FXML
Publicado por: MC.cover en 15 Diciembre 2016, 00:54 am
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:
(https://k61.kn3.net/0/2/7/8/F/3/F60.png) Al realizar click en el boton registrarse redirige a esta ventana:
(https://k61.kn3.net/5/5/D/0/E/3/8D8.png)

Yo quiero que al darle click al botón volver vuelva a la ventana de LogIn.
Codigo de ventana principal:
Código
  1. public class frmLogIn extends Application{
  2.  
  3.    public Stage stage = new Stage();
  4.  
  5.    @Override
  6.    public void start(Stage primaryStage) throws Exception {
  7.        try {
  8.        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocumentLogIn.fxml"));
  9.  
  10.        Scene scene = new Scene(root);
  11.  
  12.        stage.getIcons().add(new Image("/Imgs/User.png"));
  13.        stage.setTitle("LogIn");
  14.        stage.setResizable(false);
  15.        stage.centerOnScreen();
  16.        stage.setScene(scene);
  17.        stage.show();
  18.  
  19.        } catch (IOException ex) {
  20.            System.out.println(ex.getMessage());
  21.        }
  22.    }
  23.  
  24.    public void CloseLogIn(){ stage.close(); }
  25.  
  26.    public static void main(String[]args){ launch(args); }

Codigo logica de ventana LogIn:
Código
  1. public class FXMLDocumentLogInController implements Initializable {
  2.  
  3.    @FXML
  4.    protected JFXButton BtnLogIn;
  5.  
  6.    @FXML
  7.    private JFXButton BtnSignUp;
  8.  
  9.    @FXML
  10.    private JFXTextField TxtUser;
  11.  
  12.    @FXML
  13.    private JFXPasswordField TxtPassword;
  14.  
  15.    @FXML
  16.    void BtnLogIn_Clicked(ActionEvent event) {
  17.  
  18.    }
  19.  
  20.    @FXML
  21.    void BtnSignUp_Clicked(ActionEvent event) {
  22.        frmRegister regis = new frmRegister();
  23.        Stage stage = (Stage) BtnLogIn.getScene().getWindow();
  24.              stage.close();
  25.                    regis.ShowRegister();
  26.    }
  27.  
  28.    @Override
  29.    public void initialize(URL url, ResourceBundle rb) {    }    

Codigo ventana Registrarse:
Código
  1. public class frmRegister {
  2.  
  3.   public Stage stage = new Stage();
  4.  
  5.    public void ShowRegister(){
  6.        try {
  7.            FXMLLoader loader = new FXMLLoader(FXMLDocumentLogInController.class.getResource("FXMLDocumentRegister.fxml"));
  8.            Parent frmRegister = (Parent) loader.load();
  9.  
  10.            stage.getIcons().add(new Image("/Imgs/User.png"));
  11.            stage.setTitle("Registro");
  12.            stage.centerOnScreen();
  13.            stage.setResizable(false);
  14.            stage.setScene(new Scene(frmRegister));
  15.            stage.show();
  16.        } catch (IOException ex) {
  17.            System.out.println(ex.getMessage());
  18.        }
  19.  
  20.    }
  21.  
  22.    public void CloseRegister(){
  23.        stage.close();
  24.    }
  25. }

Codigo logica visual Registrarse:
Código
  1. public class FXMLDocumentRegisterController implements Initializable {
  2.  
  3.    @FXML
  4.    private JFXComboBox<?> CmbCountry;
  5.  
  6.    @FXML
  7.    private JFXPasswordField TxtRePassword;
  8.  
  9.    @FXML
  10.    private JFXTextField TxtName;
  11.  
  12.    @FXML
  13.    private JFXButton BtnRegister;
  14.  
  15.    @FXML
  16.    private JFXTextField TxtLastName;
  17.  
  18.    @FXML
  19.    private JFXPasswordField TxtPassword;
  20.  
  21.    @FXML
  22.    private JFXTextField TxtUser;
  23.  
  24.    @FXML
  25.    private JFXButton BtnBack;
  26.  
  27.    @FXML
  28.    void BtnBack_Clicked(ActionEvent event) {
  29.            //aca se encuentra mi problema
  30.    }
  31.  
  32.    @FXML
  33.    void BtnRegister_Clicked(ActionEvent event) {
  34.  
  35.    }
  36.  
  37.    @Override
  38.    public void initialize(URL url, ResourceBundle rb) {    }    
  39.  
  40. }

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 :)


Título: Re: Ayuda JavaFX FXML
Publicado por: 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.


Título: Re: Ayuda JavaFX FXML
Publicado por: MC.cover en 15 Diciembre 2016, 06:29 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. :)