【问题标题】:Put a javafx button instance in a "movable" node将 javafx 按钮实例放在“可移动”节点中
【发布时间】: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

标签: java javafx


【解决方案1】:

您正在将 mainMenuBox 添加到不同的场景中。

【讨论】:

  • 是的,这就是我想做的事情,或者至少是按钮。它们在 2 个不同的场景中,但在第二个场景中没有出现,有没有办法在 2 个不同的场景中使用相同的 VBox 或在 javafx 中使用类似的东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多