Java 更改窗格';什么是来自内部的内容?
如果我有一个扩展超类的类,该超类具有Java 更改窗格';什么是来自内部的内容?,java,javafx,Java,Javafx,如果我有一个扩展超类的类,该超类具有.setContent(Pane Pane)方法,那么我是否能够从类内更改窗格 例如:按下示例按钮时,我想将内容设置为stackPane2。(this.setContent(stackPane2);) public类AClass扩展了SomeClass{ 公共AClass(){ 超级(); HBox HBox=新的HBox(); 按钮示例按钮=新按钮(“示例”); setOnAction(新的EventHandler(){ 公共无效句柄(ActionEvent
.setContent(Pane Pane)
方法,那么我是否能够从类内更改窗格
例如:按下示例按钮时,我想将内容设置为stackPane2
。(this.setContent(stackPane2);
)
public类AClass扩展了SomeClass{
公共AClass(){
超级();
HBox HBox=新的HBox();
按钮示例按钮=新按钮(“示例”);
setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
//在这里更改内容
}
});
StackPane stackPane1=新的StackPane();
stackPane1.getChildren().addAll(hBox);
StackPane stackPane2=新的StackPane();
stackPane2.getChildren().add(/*一些其他东西*/);
此.setContent(stackPane1);
}
}
这能做到吗?如果是,怎么做?否则可能的解决方法是什么。我不确定是否遗漏了什么,但我认为如果没有太多代码,最简单的方法是将
stackPane1
和stackPane2
声明为最终字段,然后从按钮侦听器调用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);
}
}
public类AClass扩展了SomeClass{
专用最终StackPane stackPane1;
专用最终StackPane stackPane2;
公共AClass(){
超级();
HBox HBox=新的HBox();
按钮示例按钮=新按钮(“示例”);
setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
if(somethinghapper()){
此.setContent(stackPane1);
}否则{
这个.setContent(stackPane2);
}
}
});
stackPane1=新的StackPane();
stackPane1.getChildren().addAll(hBox);
stackPane2=新的StackPane();
stackPane2.getChildren().add(/*一些其他东西*/);
此.setContent(stackPane1);
}
}
我不确定是否遗漏了什么,但我认为如果没有太多代码,最简单的方法是将stackPane1
和stackPane2
声明为最终字段,然后从按钮侦听器调用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);
}
}
public类AClass扩展了SomeClass{
专用最终StackPane stackPane1;
专用最终StackPane stackPane2;
公共AClass(){
超级();
HBox HBox=新的HBox();
按钮示例按钮=新按钮(“示例”);
setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
if(somethinghapper()){
此.setContent(stackPane1);
}否则{
这个.setContent(stackPane2);
}
}
});
stackPane1=新的StackPane();
stackPane1.getChildren().addAll(hBox);
stackPane2=新的StackPane();
stackPane2.getChildren().add(/*一些其他东西*/);
此.setContent(stackPane1);
}
}