Closed mokun closed 6 years ago
Hi there, currently, CustomStage is using a previously created Scene, so there is a provided method on this library called 'changeScene(Pane)' this method allows you to pass a Pane to the scene which will be used as the 'root' of the window.
customStage.changeScene(new StackPane());
okay I see.
Node scene1 = manager.getScene("Scene1"); //gets Scene1.fxml view
if I do the above, scene1 is actually a node, not a scene, which is a little confusing.
Is there any way to get back the instance of scene ? I need to manipulate the scene directly.
Thanks much !
Oh yeah. It is a Node. The 'Scene' in this library refers to the particular view. Anyways, since customestage is a sub class of Stage,
stage.getScene();
should do the trick for you.
Also to be noted that, the sample set of code you provided there is an implementation of "SceneManager" tool within CustomStage.
And the SceneManager cannot be used to manipulate fxml files (Nodes) unless the "DefaultSceneManager" is activated
You should refer the wiki.
stage.getScene();
should do the trick for you.
I'll test to see if stage.getScene();
can still return a Scene instance and not a Node.
One problem is that when I do stage.setScene(scene)
, the title will be covered up. So I lose the ability to drag the window since I need to hover the mouse pointer over the title bar to do the dragging.
stage.getScene();
will return the Scene of the CustomStage which includes all the basic components of it (Even the title bar).
stage.setScene(scene);
will put the given Scene to the CustomStage overriding its default Scene which includes all the components (like said, even the title bar).
If you want to change the view (the main view of the window), the 'stage.changeScene(node)' method is provided to do so, and unless otherwise you want to manipulate the Scene itself, i strongly recommend you to manipulate the current scene of CustomStage via Scene scene = stage.getScene();
and change the 'scene' object accordingly.
Hi @Oshan96 ,
If I don't want to use fxml when setting up a scene, how do I proceed with adding the scene to the CustomStage ?
Say I want to define a stack pane to sit inside the stage.
As soon as I do
stage.setScene(scene)
, the title bar will be covered and I won't be able to drag the window/stage or use the buttons.So how should I add a stack pane or an anchor pane to a custom stage ?