Tengo la aplicación JavaFX 2.0, que consta de dos archivos FXML, y 2 controladores para ellos + un archivo .java "principal".Cómo pasar un objeto creado en FXML Controller1 a Controller2 del control FXML interno
A la hora de inicio, FXML1 se inicializa, así:
public void start(Stage stage) throws Exception {
stage.setTitle("Demo Jabber JavaFX Chat");
Parent root = FXMLLoader.load(getClass().getResource("fxml_example.fxml"),
ResourceBundle.getBundle("fxmlexample.fxml_example"));
Scene scene = new Scene(root, 226, 264);
stage.setScene(scene);
scene.getStylesheets().add("fxmlexample/fxmlstylesheet.css");
stage.show();
}
Entonces, cuando se hace clic en un botón de ESCENA1, en su controlador de eventos en la clase Controller1, cambio de raíz ESCENA1, para mostrar la nueva interfaz gráfica de usuario -vista para un usuario. Y en este controlador inicializo algún objeto. Por ejemplo así:
public class FXMLExampleController {
//some fields...
private MySuperObject c;
@FXML protected void handleSubmitButtonAction(ActionEvent event) {
//some fields...
c = new MySuperObject(); //here i initialize my object, i'm interested in
try {
c.login(username, password); // some actions with this object, which i need to make.
Scene cc = buttonStatusText.getScene();
Parent root = null;
try {
//changing a scene content...
root = FXMLLoader.load(getClass().getResource("fxml_example2.fxml"),
ResourceBundle.getBundle("fxmlexample.fxml_example"));
} catch (IOException ex) {
Logger.getLogger(FXMLExampleController.class.getName()).log(Level.SEVERE, null, ex);
}
cc.setRoot(root);
}
Y, después de eso, tengo que hacer un trabajo con ese objeto en la escena siguiente, y no debe ser una nueva instancia de la misma clase, pero el objeto, i' ve inicializado en la primera escena.
Entiendo cómo hacer todo esto usando "standart java", pero estoy un poco confundido en esta tarea usando JavaFX + FXML.
¿Cuáles son los root.cb. ** minutes ** .getItems(). add ("nuevo elemento"); y ** cc ** .setRoot (root); en la última pieza de código? –
Lo sentimos, los 'minutos' son de copiar y pegar incorrectamente. Y 'cc' del ejemplo original del código de Victoria. Actualizado. –