javafx есть несколько панелей в одной сцене?

<p>я пытаюсь сделать приложение, которое будет иметь дату вверху (всегда автоматически по центру) и контент внизу, который не будет выровнен в каком-либо направлении. </p><p>я подумал, что лучший способ сделать это будет иметь: </p><pre><code>pane normallayout = new pane(); stackpane centeredlayout = new stackpane(); label centeredtext = new label("i want this text centered!"); button unorganizedbutton = new button("press me"); centeredlayout.getchildren().add(centeredtext); normallayout.getchildren().add(unorganizedbutton); </code></pre><p>но тогда я не могу сделать что-то вроде: </p><pre><code>scene myscene = new scene(centeredlayout, normallayout, 500, 500); window mywindow = new window(); mywindow.setscene(myscene); mywindow.show(); </code></pre><p>так как это можно сделать? как несколько панелей могут существовать на одной сцене?</p>

<p>сама сцена может иметь только одну <strong>root</strong> панель .... поэтому, если вы хотите 2 панели в сцене, вам нужно 3.</p><pre><code>scene | v root pane (vbox for example) | | v v pane1 pane2 </code></pre><p>в вашем коде это может выглядеть так:</p><pre><code>stackpane rootpane = new stackpane(); scene scene = new scene(rootpane,...); pane pane1 = new pane(); pane pane2 = new pane(); rootpane.getchildren().addall(pane1,pane2); </code></pre><p>в зависимости от того, как ваше приложение должно быть размечено, вы должны выбрать правильные реализации pane.</p><p>в качестве небольшого совета для ознакомления со всеми контейнерами макетов попробуйте приложение scenebuilder. <a href="http://gluonhq.com/open-source/scene-builder/">http://gluonhq.com/open-source/scene-builder/</a> </p><p>возможно, эта ссылка поможет вам понять, как работает макет в javafx: <a href="http://docs.oracle.com/javafx/2/scenegraph/jfxpub-scenegraph.htm">http://docs.oracle.com/javafx/2/scenegraph/jfxpub-scenegraph.htm</a> <a href="https://docs.oracle.com/javafx/2/layout/builtin\_layouts.htm">https: // docs.oracle.com/javafx/2/layout/builtin\_layouts.htm</a> </p>

<p>я бы посоветовал вам создать «корневую» панель .. в вашем случае вы можете использовать borderpane.</p><p>пример:</p><pre><code>borderpane root = new borderpane(); label centeredtext = new label("i want this text centered!"); button unorganizedbutton = new button("press me"); borderpane.setalignment(centeredtext, pos.center); root.settop(centeredtext); root.setbottom(unorganizedbutton); </code></pre><p>после этого просто вызовите конструктор с только что созданной панелью.</p><pre><code>scene scene = new scene(root, 500, 500); </code></pre><p>дополнение:</p><p>вы также можете просто установить новые панели.</p><pre><code>anchorpane anchorpane = new anchorpane(); root.settop(anchorpane); </code></pre>