Я должен был бы сказать Схему, особенно в он воплощение R6RS .
Если вы уверены, что у вас будет только 2 разных сцены, вы можете просто привязать свойство сцены к Stage следующим образом:
var showSecondScene = false;
var myButton = Button {
onMouseClicked: function(e) { showSecondScene = true; }
}
def stage = Stage {
scene: bind if (showSecondScene) then secondScene else firstScene
}
ОБНОВЛЕНИЕ: Это действительно работает, если у вас есть любое количество сцен примерно так:
scene: bind if (showScene1) then scene1
else if (showScene2) then scene2
else scene3
Вы можете подумать, почему у вас будет больше двух сцен, вместо этого выбрав установку 'visible: false' для перекрывающихся узлов группы.
Устранить все утверждения IF-Evel. Свяжитесь непосредственно к переменной, которая содержит текущую сцену.
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
var currentScene: Scene;
def scene1: Scene = Scene {
content: Text {
font : Font {
size : 24
}
x: 10, y: 30
content: "Scene 1"
onMouseClicked: function( e ):Void {
currentScene = scene2;
}
}
}
def scene2: Scene = Scene {
content: Text {
font : Font {
size : 24
}
x: 10, y: 30
content: "Scene 2"
onMouseClicked: function( e ):Void {
currentScene = scene1;
}
}
}
Stage {
title: "Multi-Scene"
width: 250
height: 80
scene: bind currentScene
}
currentScene = scene1;