JavaFX Nouvelle Scène sur le Bouton Cliquez sur

Le titre peut être un peu vague, alors permettez-moi de le définir un peu mieux. Je dispose d'une pièce de code (ci-dessous): un simple menu principal pour un jeu que je suis en train de travailler sur. Tout fonctionne bien, sauf pour le bouton de Démarrage.

Ce que je veux être en mesure de faire est de cliquer sur le bouton Démarrer, et ont une nouvelle scène apparaissent sur la même scène (fenêtre). Je ne veux pas voir une nouvelle fenêtre s'ouvre. J'en ai parlé avec quelqu'un de plus expérimenté en Java, et ils m'ont dit de créer des classes séparées pour les MenuFX et la GameFX. Si c'est le cas, j'aurais besoin d'appeler certains de début ou de méthode de lancement sur le GameFX classe à partir de la MenuFX classe, correct? Est-ce la meilleure approche, ou aurais-je envie de garder tous les FX code dans une classe? Aussi, je dois garder le même pour toutes les FX travail, non?

Cette post de jeter un peu de lumière sur les choses, mais je ne suis pas bien versé dans certains termes en question - par exemple, je ne comprends toujours pas le concept de Racine.

Aussi, cette post parle d'une application similaire, mais je ne suis pas à l'aide de FXML ou SceneBuilder... je ne sais pas si tout cela est relatable.

MenuFX.java - j'ai supprimé quelques le code de travail, simplement pour des raisons de concision. On peut voir que j'ai besoin d'aide est d'attacher le bouton Démarrer pour certaines fonctionnalités qui en fait une nouvelle scène vide.

/* 
* This is simply working on the title screen.
*/
//Asssume all imports are correct
import java.everythingNeeded
public class MenuFX extends Application {
@Override
public void start (Stage primaryStage) {
//Make the window a set size...
primaryStage.setResizable(false);
//Create menu vbox and set the background image
VBox menuVBox = new VBox(30);
menuVBox.setBackground(new Background(new BackgroundImage(new 
Image("image/bambooBG.jpg"), null, null, null, new BackgroundSize(45, 
45, true, true, true, true))));
//Create start button
Button startButton = new Button("Start Game");
//TODO Some things...
//Need assistance here
//Create help button
Button helpButton = new Button("Help");
helpButton.setOnAction(e -> THINGS);
//Create music toggle button
ToggleButton musicButton = new ToggleButton("Music On/Off");
musicButton.setOnAction(e -> THINGS);
//Create credits button
Button creditsButton = new Button("Credits");
creditsButton.setOnAction(THINGS);
//Create exit button and set it to close the program when clicked
Button endButton = new Button("Exit Game");
endButton.setOnAction(e -> Platform.exit());
//Add all nodes to the vbox pane and center it all
//Must be in order from top to bottom
menuVBox.getChildren().addAll(startButton, helpButton, musicButton, creditsButton, endButton);
menuVBox.setAlignment(Pos.CENTER);
//New scene, place pane in it
Scene scene = new Scene(menuVBox, 630, 730);
//Place scene in stage
primaryStage.setTitle("-tiles-"); 
primaryStage.setScene(scene); 
primaryStage.show(); 
}
//Needed to run JavaFX w/o the use of the command line
public static void main(String[] args) {
launch(args);
}
}

Précisant: je veux cliquez sur le bouton Démarrer et ont actuellement ouvrir la fenêtre de modification d'une scène vide.

Ici est un pastebin de la MenuFX classe dans son intégralité:
http://pastebin.com/n6XbQfhc

Merci pour toute aide,

Bagger

  • Ce n'est pas vraiment clair ce que vous demandez. Votre GameFX classe doit étendre une classe de nœud d'un certain type, ou donner accès à un nœud de l'instance. Ensuite, vous pouvez remplacer la racine de la scène avec ce nœud lorsque le bouton est enfoncé. Here est un post, j'ai répondu tout à l'arrière qui semble être tri-de-similaires: qui ouvre de nouvelles fenêtres pour chaque classe mais de toute évidence vous n'avez pas à le faire. Si cela ne fonctionne pas, vous avez probablement besoin de préciser votre question.
  • This post est très similaire à ma question. Je viens de tombé sur elle. Aussi, je ne comprends pas ce qu'est la Racine. Je l'ai vu dans de nombreux exemples de code, mais il semble trop en profondeur pour moi encore. Je suis désolé pour le déclenchement d'une telle ignorance, mais je suis pratiquement enseignement me Java, en particulier en JavaFX. Mon instructeur au cours de ce semestre, semble être un peu démotivé.
  • "Racine", renvoie le nœud racine du graphe de scène, j'.e le nœud qui est affiché dans la scène. Le Oracle tutoriel a une description de "graphe de scène" de la terminologie, avec des exemples. (FWIW, prétendant que vous êtes en difficulté, parce que votre instructeur n'est pas bon ne va pas vous obtenir beaucoup de sympathie ici. Beaucoup, sinon la plupart, d'entre nous viennent d'une époque où tu n'avais pas le choix, mais pour l'auto-apprentissage; et la première audience de ce site est de programmeurs professionnels qui n'ont pas le luxe de quelqu'un pour le faire.)
  • Eh bien, je vous remercie de m'aider. Je vais travailler à travers elle un peu plus et voir ce qui peut être fait. Je vais essayer de ne pas encombrer le site avec mes questions.
  • Vous êtes les bienvenus pour poser autant de questions que vous le souhaitez: assurez-vous de ne un montant raisonnable de la recherche d'abord. J'ai juste fait une recherche google pour "JavaFX ce qui est la racine de la scène" et la documentation j'ai fait un lien est apparu comme le premier succès, avec ceci seconde, ce qui est aussi quelque chose d'utile.
InformationsquelleAutor | 2017-03-16