gpt4 book ai didi

java - 从内部更改 Pane 的内容?

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:45 24 4
gpt4 key购买 nike

如果我有一个扩展父类(super class)的类,该类具有 .setContent(Pane pane) 方法,我是否可以在类中更改 pane

例如:当按下示例按钮时,我想将内容设置为stackPane2。 (this.setContent(stackPane2);)。

public class AClass extends SomeClass{
public AClass(){
super();
HBox hBox = new HBox();
Button exampleButton = new Button("Example");
exampleButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
//Change the content here
}
});


StackPane stackPane1 = new StackPane();
stackPane1.getChildren().addAll(hBox);

StackPane stackPane2 = new StackPane();
stackPane2.getChildren().add(/*Some other stuff*/);

this.setContent(stackPane1);
}
}

这可以做到吗?如果是这样,怎么办?否则可能有什么解决方法。

最佳答案

我不确定我是否遗漏了一些东西,但我认为如果您没有太多代码,最简单的方法是将 stackPane1stackPane2 声明为最终字段,然后从按钮监听器调用 setContent

public class AClass extends SomeClass{

private final StackPane stackPane1;
private final StackPane stackPane2;

public AClass(){
super();
HBox hBox = new HBox();
Button exampleButton = new Button("Example");
exampleButton.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
if (somenthingHapper()) {
this.setContent(stackPane1);
} else {
this.setContent(stackPane2);
}
}
});


stackPane1 = new StackPane();
stackPane1.getChildren().addAll(hBox);

stackPane2 = new StackPane();
stackPane2.getChildren().add(/*Some other stuff*/);

this.setContent(stackPane1);
}
}

关于java - 从内部更改 Pane 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32677674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com