/ / Как да направите преоразмерителен SplitPane в Tab в JavaFX 2.0 (за предпочитане с помощта на SceneBuilder и / или FXML)? - потребителски интерфейс, javafx-2, scenebuilder

Как да направите размерите SplitPane в Tab в JavaFX 2.0 (за предпочитане с помощта на SceneBuilder и / или FXML)? - потребителски интерфейс, javafx-2, инструмент за създаване на сцени

Въпросът основно казва всичко, спредупреждавам, че аз съм начинаещ в GUI дизайна като цяло и JavaFX в частност. Настройте (плъзнете) размера на SplitPane, за да съответства на размера на раздела. Това не е проблем, ако SplitPane не е дете (аз го тествах само като (голямо) дете на Tab досега). Ще имате нещо подобно:

въведете описанието на изображението тук

При предварителен преглед, ако се опитате да разширите размера на прозореца чрез плъзгане, SplitPane няма да промени размера:

въведете описанието на изображението тук

Тук е FXML, който получавам от SceneBuilder, използвайки процеса, описан в горната част на този пост с може би няколко незначителни промени, които не помогнаха:

<?xml version="1.0" encoding="utf-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<tabs>
<Tab text="Untitled Tab 1">
<content>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="0.0" minWidth="0.0" prefHeight="386.0" prefWidth="613.0">
<children>
<SplitPane dividerPositions="0.29797979797979796" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="358.0" prefWidth="600.0">
<items>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" />
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="158.0" prefWidth="277.0" />
</items>
</SplitPane>
</children></AnchorPane>
</content>
</Tab>
<Tab text="Untitled Tab 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>

Отговори:

2 за отговор № 1

Проблемът е, че вашият SplitPane е дете наAnchorPane. В случай, че имате нещо под AnchorPane, то е привързано към специфични координати. За да позволите на детето да поеме цялото, трябва да посочите котвата на AnchorPane нула.

<TabPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
<tabs>
....
<SplitPane dividerPositions="0.29797979797979796" maxHeight="-Infinity"
maxWidth="-Infinity" prefHeight="358.0" prefWidth="600.0"
AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
....
</tabs>
</TabPane>

С помощта на създател на сцени можете да присвоите ограниченията на AnchorPane чрез:

  1. Изберете детето под AnchorPane
  2. Преместете се в секцията Layout (Разпределение) от дясната страна на панела
  3. Ще видите раздел, наречен AnchorPane ограничения, просто въведете четирите раздели стойности и запишете

въведете описанието на изображението тук