我在Javafx中编写了一个非常简单的应用程序,其中一个按钮的舞台上有一个文本框作为一个scene.Now,我想要的行为是,当我点击按钮时,我可以加载另一个场景中的另一个按钮和一个文本框在舞台上,并删除按钮,我与前一个文本框一起点击。所以点击一个按钮应该在舞台上加载一个新的场景。有关我如何做到这一点的任何提示?JavaFX中的多个场景
按照Eric的建议:我有这个代码,它的工作方式是我想要的。
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
}
我有2级以上的场景和这个技术只是罚款2点的场景,因为JavaFX的不允许现场绑定后的if-else或开关的情况下。有没有其他方法可以尝试? – iceman 2009-09-29 13:19:13
我已经更新了我的答案。绝对考虑是否需要多个场景或多个CustomNode设置适当的可见性。 – 2009-09-29 16:58:38
是否可以在场景声明中输入调试打印语句来知道它的加载或被调用?我无法在场景中调用任何方法。 – iceman 2009-09-30 08:26:23