J'écris une application très simple dans Javafx où il y a un seul bouton avec une zone de texte sur la scène comme une scène. Maintenant, le comportement que je veux est que quand je clique sur le bouton je peux charger un autre scène avec un autre bouton et une zone de texte sur la scène et retirez le bouton que j'ai cliqué avec le texte précédent. Donc, le clic d'un bouton devrait charger une nouvelle scène sur la scène. des conseils sur la façon dont je peux le faire?Plusieurs scènes dans JavaFX
En suivant le conseil d'Eric: j'ai ce code, et il fonctionne comme je le veux.
var showScene1 = true;
var showScene2 = false;
var showScene3 = false;
def stage = Stage
{
title: "Hello World"
var scene1 =Scene
{
content:
[
Text {
font : Font {
size: 24
}
x: 10, y: 30
content: "HelloWorld from Scene1"
},
Button
{
text: "Click Me to change to Scene2 "
onMouseClicked: function(e: MouseEvent):Void
{
showScene2 = true;
println("In scene 2");
}
}
]
}
var scene2 =Scene
{
content:
[
Text {
font : Font {
size: 24
}
x: 10, y: 30
content: "HelloWorld from Scene2"
},
Button
{
text: "Click Me to change to Scene3 "
onMouseClicked: function(e: MouseEvent):Void
{
showScene1 = false;
showScene2 = false;
showScene3 = true;
println("In scene 3");
}
}
]
}
var scene3 =Scene
{
content:
[
Text {
font : Font {
size: 24
}
x: 10, y: 30
content: "HelloWorld from Scene3"
}
]
}
scene: bind if (showScene2) then scene2
else if (showScene1) then scene1
else scene3
}
J'ai plus de 2 scènes et cette technique est très bien pour 2 scènes parce que JavaFX ne permet pas si-else ou switch cas après bind scène. Y at-il un autre moyen que je peux essayer? – iceman
J'ai mis à jour ma réponse. Considérez définitivement si vous voulez plusieurs scènes ou simplement plusieurs paramètres de personnalisation de CustomNodes comme approprié. –
Est-il possible d'entrer des instructions d'impression de débogage dans une déclaration de scène pour savoir si elle est chargée ou appelée? Je ne peux pas appeler de méthode dans une scène. – iceman