在JavaFX中为每个场景使用独立方法
我正在尝试使用我的场景,在JavaFX中为每个场景使用独立方法,java,javafx,methods,scene,stage,Java,Javafx,Methods,Scene,Stage,我正在尝试使用我的场景,home,作为start中的场景 但是它不起作用,我没有得到我的300 x 300,而是得到一个900 x 400的空白屏幕。也许这很容易被发现,但我没有看到 private Scene home; private Stage window; public Scene home(Scene home) { // build my scene return home = new Scene(root, 300
home
,作为start
中的场景但是它不起作用,我没有得到我的300 x 300,而是得到一个900 x 400的空白屏幕。也许这很容易被发现,但我没有看到
private Scene home;
private Stage window;
public Scene home(Scene home) {
// build my scene
return home = new Scene(root, 300, 300);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setScene(home);
window.show();
}
我正在尝试将我的场景创建为方法,这样我就可以使它们远离start
计划稍后使用以下命令在场景之间切换:
btn.setOnAction(e->window.setScene(另一个场景))代码>,提前谢谢大家 您从不调用home
方法。因此,home
字段将保持null
,这是传递给window.setScene
的值
此外,我将调用home
方法,它以一种奇怪的方式实现:
public Scene home(Scene home) {
永远不会读取该参数
return home = new Scene(root, 300, 300);
这会将值分配给方法参数,而不是在场景返回场景之前分配给场景,因为java是按值调用的,因此没有效果
您可以这样实现它:
private Scene home;
private Stage window;
public Scene home() {
if (home == null) {
// build my scene
home = new Scene(root, 300, 300)
// or maybe do this without testing, if the scene was created before???
}
return home;
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setScene(home()); // use the method here
window.show();
}