Marius Larsen
Marius Larsen

Reputation: 21

JAVAFX: How can I put this into one window instead of two?

I've been trying to make a toolbar inside a window with a checkers game, what happens now is, Checkers game opening in a separate window and so is the toolbar, what am I doing wrong? How can I make this code open in one window with both functions?

 @Override
 public void start(Stage primaryStage) throws Exception {

    Stage toolStage = new Stage();
    Button btnNewGame = new Button("New Game");
    Button btnConcede = new Button("Concede");
    Button btnNetwork = new Button("Network");

    ToolBar toolBar = new ToolBar();
    toolBar.getItems().addAll( new Separator(), btnNewGame, btnConcede, btnNetwork);

    BorderPane pane = new BorderPane();
    pane.setTop(toolBar);
    Scene toolScene = new Scene(pane, 600, 400);
    toolStage.setScene(toolScene);
    toolStage.show();

    Scene scene = new Scene(createContent());
    primaryStage.setTitle("Dam spill - OBJ2000 Eksamen 2016");
    primaryStage.setScene(scene);
    primaryStage.show();
}

Upvotes: 1

Views: 33

Answers (1)

fabian
fabian

Reputation: 82461

You're creating a new Scene+Stage fot the toolbar, show it and then show the content in the primaryStage instead of adding both toolbar and content as parts of the same scene, e.g. by adding the content as center node of the BorderPane:

@Override
public void start(Stage primaryStage) throws Exception {
    Button btnNewGame = new Button("New Game");
    Button btnConcede = new Button("Concede");
    Button btnNetwork = new Button("Network");

    ToolBar toolBar = new ToolBar();
    toolBar.getItems().addAll( new Separator(), btnNewGame, btnConcede, btnNetwork);

    BorderPane pane = new BorderPane();
    pane.setTop(toolBar);
    pane.setCenter(createContent());

    Scene scene = new Scene(pane, 600, 400);

    primaryStage.setTitle("Dam spill - OBJ2000 Eksamen 2016");
    primaryStage.setScene(scene);
    primaryStage.show();
}

Upvotes: 1

Related Questions