2016-11-22 2 views
1

Я создаю приложение, которое имеет разные интерфейсы. Я решил использовать JavaFX для этого, и я хотел знать, могу ли я иметь несколько контейнеров, сохраненных в документе FXML, и при использовании загрузчика FXML выбрать конкретный контейнер по идентификатору (т. Е. fx:id).Как загрузить конкретный контейнер из документа FXML?

Недавно я узнал, что несколько человек сгруппированы против меня и дублируют вопрос. Теперь я заявлю о своей защите и докажу, что это не дублирует.

Этот вопрос не отвечает мне, так это то, что я хочу установить fx: id для самого родителя и использовать fxmlloader для загрузки родителя на основе id. ОК?

+0

Что вы имеете в виду с контейнером? Вы имеете в виду контроллера? – fireandfuel

+0

@fireandfuel Например, Anchor Pane. Или Сетка. Как те. –

+1

Возможный дубликат [FXMLLoader как получить доступ к компонентам с помощью FXID?] (Http://stackoverflow.com/questions/26962788/fxmlloader-how-to-access-the-components-by-fxid) – yeedle

ответ

2

Вы можете сделать это, используя метод getNamespace загрузчика FXML.

(код из этого SO answer, но посмотреть комментарии):

FXMLLoader loader = new FXMLLoader(getClass().getResource("FXMLDocument.fxml")); 
Parent root = loader.load(); 
TextField foo = (TextField)loader.getNamespace().get("exampleFxId"); 

Лучший подход заключается в отдельные файлы FXML для всех ваших потребностей, а затем загрузить каждый из них по мере необходимости с помощью метода FXMLLoader.load().

+0

Я согласен с тем, что Рахул, я ищу загрузку родителя с помощью fx: id –

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