【发布时间】:2017-03-10 13:47:33
【问题描述】:
我在学校被分配构建一个小型 JAVAFX 程序,该程序带有可在不同场景(布局)中移动的按钮。
我的程序是一个登录窗口和详细信息窗口。但是我必须在与 Main 类不同的类中创建详细信息窗口。当它是一个类时,如何让按钮从 Main 调用“详细信息窗口”?
(参见 createAccountBtn.setOnAction)
所以这是交易:我创建了一个接口,我在其中放置了这个方法:
void displayLayout(VBox layout);
然后它在Main中触发这个方法:
public void displayLayout(VBox layout){
Scene scene = new Scene(layout, 200, 200);
window.setScene(scene);
我在 Main 这个也有:
Button createAccountBtn = new Button("Create new account");
createAccountBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
displayLayout(new DetailScreen(listener));
}
});
layout = new VBox();
layout.getChildren().addAll(accountNumberTF, loginBtn, createAccountBtn);
layout.setAlignment(Pos.CENTER);
displayLayout(layout);
window.show();
哪个是布局选项和按钮。 setOnAction 按钮指向一个继承 VBox 并充当布局的新类:
private ChangeScreenListener listener;
public DetailScreen(ChangeScreenListener listener) {
this.listener = listener;
Button exitBtn = new Button("EXIT");
TextField input = new TextField();
VBox layout = new VBox();
layout.getChildren().addAll(input, exitBtn);
但是,当我点击按钮后,窗口变成了空的,并没有改变布局。
想法?
【问题讨论】:
-
欢迎来到 Stack Overflow。请收下tour 并查看How to Ask