Escribo una aplicación muy simple en Javafx donde hay un solo botón con un cuadro de texto en el escenario como una escena. Ahora, el comportamiento que quiero es que cuando hago clic en el botón puedo cargar otro escena con otro botón y un cuadro de texto en el escenario y quite el botón que hice clic junto con el cuadro de texto anterior. Entonces, el clic de un botón debería cargar una nueva escena en el escenario. algún consejo sobre cómo puedo hacer esto?Múltiples escenas en JavaFX
Siguiendo el consejo de Eric: tengo este código, y está funcionando como quiero.
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
}
tengo más de 2 escenas y esta técnica está muy bien para 2 escenas porque JavaFX no permite if-else o switch caso tras escena se unen. ¿Hay alguna otra forma en que pueda intentarlo? – iceman
He actualizado mi respuesta. Definitivamente considere si desea varias escenas o solo varios CustomNodes configurando la visibilidad según corresponda. –
¿Es posible introducir instrucciones de impresión de depuración dentro de una declaración de escena para saber si se está cargando o llamando? No puedo llamar a ningún método dentro de una escena. – iceman