【发布时间】:2015-10-20 01:24:21
【问题描述】:
我有一个事件处理程序,它有一个视图实例(javafx Scene)。
这是场景的代码:
public class GameMenuScene {
private final Button btnArcade;
private final Button btnTraining;
private final Button btnReplay;
private final VBox mainMenuBox;
private Scene mainMenuScene;
public GameMenuScene() {
btnArcade = new Button("Arcade");
btnTraining = new Button("Training");
btnReplay = new Button("Replay");
mainMenuBox = new VBox(4);
mainMenuBox.getChildren().addAll(btnArcade, btnTraining, btnReplay);
mainMenuScene = new Scene(mainMenuBox, 300, 300);
}
public Scene getGameMenuScene() {
return mainMenuScene;
}
public VBox getGameMenuSortcut() {
return mainMenuBox;
}
在我的Application类中,我首先调用getGameMenuScene();mainMenuScene得到正确显示。
问题是当我从另一个 EventHandler 调用 getGameMenuSortcut(); 时,菜单看起来是空的,但在调试中我可以看到按钮在 VBox 中。
为什么当我使用 getGameMenuSortcut() 时它们没有出现在 VBox 中;在另一个方面?
这是另一个事件处理程序的示例:
public class EV {
private final Scene EVview;
private GameMenuScene sc;
private VBox menu;
public EV() {
menu.getChildren.add(new Label("Menu"));
EVview = new Scene(mainMenuBox, 300, 300);
addMenu(); //This add a menu with the 3 buttons, but they do not get displayed.
}
public void addMenu() {
menu.getChildren.add(sc.getGameMenuSortcut());
}
}
【问题讨论】:
-
您提供的信息不完整。如果答案对您来说还不够,请提供MCVE。