Je suis un programmeur Java débutant, finissant la classe "Java 101" à mon université locale. Je me pousse aussi à apprendre quelques sujets supplémentaires sur le côté, y compris Java FX. J'ai travaillé sur les didacticiels Java FX sur le site Web d'Oracle, j'ai regardé quelques vidéos YouTube et j'ai lu "Java FX for Dummies" (qui était le meilleur livre que je pouvais trouver pour un débutant.) Tout ce matériel m'a appris Beaucoup de bases, mais certaines choses qui (devraient être) relativement simples m'échappent. Par exemple: Disons que j'ai un programme Java FX qui utilise plusieurs scènes sur une scène. Lorsque l'utilisateur clique sur un "Switch!" bouton, la deuxième scène est permutée pour la première. Facile. Je peux faire tout cela dans un fichier. Java, pas de problème. (Voir le code ci-dessous)Pouvez-vous écrire deux scènes Java FX différentes en deux classes distinctes?
Mais mon fichier de classe .java devient vraiment long et lourd à dépanner. Ce serait génial si je pouvais définir/déclarer/initialiser une scène comme une classe dans un fichier .java et la deuxième scène comme une autre classe dans un autre fichier .java. Cela rendrait beaucoup plus facile le suivi des composants de chaque scène. Le problème est, je ne peux pas comprendre comment faire cela.
J'imagine que vous écririez une classe Scene1.java puis une classe Scene2.java, et que vous passeriez simplement l'objet stage entre les deux lorsque vous voulez changer de scène. Mais je ne peux pas trouver un exemple de la façon dont cela est fait, et toutes mes tentatives se traduisent par des erreurs de compilation ou des erreurs d'exécution vraiment effrayantes.
Est-ce que quelqu'un sait comment cela peut être fait? Si oui, que dois-je faire pour modifier la méthode SwitchScenes2()
ci-dessous pour créer le nouvel objet Scene2
et lui passer la scène?
Merci! RAO
/*
JavaFXExample.java
*/
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.event.*;
import javafx.geometry.*;
public class JavaFXExample extends Application{
public static void main(String[] args){
launch(args);
}
Button btnSw1;
Button btnSw2;
Button btnClose;
HBox hbox1;
VBox vbox1;
Scene scene1;
Scene scene2;
Stage stage;
@Override public void start(Stage primaryStage){
btnSw1 = new Button("Switch Scenes!");
btnSw1.setOnAction(
e -> SwitchScenes2());
btnSw2 = new Button("Switch back!");
btnSw2.setOnAction(
e -> SwitchScenes1());
btnClose = new Button();
btnClose.setText("Close me!");
btnClose.setOnAction(e -> CloseWindowClick());
hbox1 = new HBox(10);
hbox1.getChildren().addAll(btnSw1);
vbox1 = new VBox(10);
vbox1.getChildren().addAll(btnSw2, btnClose);
scene1 = new Scene(hbox1, 300, 300);
scene2 = new Scene(vbox1, 200, 400);
stage = primaryStage;
stage.setScene(scene1);
stage.setTitle("Example App");
stage.show();
}
public void SwitchScenes1(){
stage.setScene(scene1);
}
public void SwitchScenes2(){
stage.setScene(scene2);
}
public void CloseWindowClick(){
stage.close();
}
}
question connexe: http://stackoverflow.com/questions/32464698/java-how-do-i-start-a-standalone-application-from-the-current-one-when-both -sont –