2013-09-26 2 views
1

Мне было интересно, есть ли простой способ для clone элементов в FXML (например, текстовые поля), чтобы отображать их более одного раза.javafx: fxml: элементы отображения дважды

После ситуации:

У меня есть TabView и хочу отобразить на первых элементах Tab X, на вторых элементах Tab Y и на третьей вкладке Я хочу, чтобы отобразить X и Y.

Множительные тот же fx:id не допускается (Netbeans говорит) и экспорт X и Y в различных .fxml файлов, так что я просто включить их в два раза, ни работы. Это еще одна проблема.

Как бы вы это разрешили?

ответ

0

Создайте новый компонент с собственным FXML. Тогда вы можете просто включить столько, сколько хотите.

Один из способов достижения этого - реализовать пользовательский Java-класс, который расширяет компонент javafx (например, Pane или VBox), а затем в конструкторе этого класса вы загружаете FXML своего макета. С помощью FXMLLoader вы устанавливаете контроллер и root как текущий компонент, и вы используете тэг fx: root в FXML.

У вас будет компонент с классом java, который будет корнем и контроллером собственного FXML.

0

Как правило, я предлагаю разделить целое .FXML на 3 разных предмета, которые можно поддерживать отдельно.

TabView, SplitPanes и все контейнеры, подобные этому, должны находиться в автономном режиме FXML и каждой новой панели в другой. В вашем случае:

  • TabView = 1 FXML
  • Tab 1 = 1 FXML
  • Tab 2 = 1 FXML

Вы можете экспортировать их таким образом, но элементы нужен контейнер например HBox или что-то простое (например, Pane, которое необходимо создать при запуске SceneBuilder или вашего root Родитель)

Смежные вопросы