FAQ FXML

Последнее обновление: 24.01.2013

Содержание

  1. FXMLLoader показывает неожиданные сетевые запросы в webstart.
  2. Установка поддерживает <fx:root>, требуется.
  3. Список и массив могут быть инициализированы от атрибута?
  4. Могут префиксы '$', '%' использоваться в инициализации массивов и списке?
  5. Обработчик событий мог быть динамически изменен?
  1. FXMLLoader показывает неожиданные сетевые запросы в webstart.

    XMLInputFactory ищет свою текущую реализацию имя class в META-INF/services/javax.xml.stream.XMLInputFactory. Если такая запись существует в одной из фляг приложения, запрос к серверу не происходит, потому что ресурс уже доступен от загруженной фляги. Создайте пустой файл META-INF/services/javax.xml.stream.XMLInputFactory и упакуйте его в пределах своего приложения. Средство обнаружения фабрики тогда получит файл, но потому что это - пустой providerId == нуль, который вызывает нейтрализацию к реализации по умолчанию XMLInputFactory на jre bootclasspath.

  2. Установка поддерживает <fx:root>, требуется.

    Взгляд на описание пользовательских компонентов. Установка корня прежде, чем загрузить fxml файл не требовалась. Корень был создан и установлен, если у пользовательского компонента был конструктор по умолчанию. Быть непротиворечивым с документацией setRoot () всегда требуется прежде, чем загрузить fxml файл.

  3. Список и массив могут быть инициализированы от атрибута?

    FXMLLoader в состоянии инициализировать список или свойство массива от строкового значения, содержащего',' (запятая) разграниченные маркеры.

    <VBox stylesheets="style1.css,style2.css,style3.css"/>
    

  4. Могут префиксы '$', '%' использоваться в инициализации массивов и списке?

    FXMLLoader в состоянии установить список или свойство массива от значения, содержащего строковые маркеры, разграниченные,"," (перечисляют = "a, b, c, d"). Это может разрешить должным образом маркеры, снабженные префиксом, "%" или "\" Что-то вроде этого list_property = "% resource1, %resource2..." или таблицы стилей = "style1.css, @style2.css...", где % является ресурсом, и относительный путь.

  5. Обработчик событий мог быть динамически изменен?

    Если Вы хотите соединить проводом в событиях в элементы FXML, событие должно прибыть из контроллера или из встроенных сценариев. Это было расширено так, чтобы fxmloader смотрел на пространство имен для обработчика событий.

    Как поместить реализацию обработчика событий в пространство имен:
         fxmlLoader.getNamespace().put("manualAction", new EventHandler>() {
                public void handle(PropertyChangeEvent stringPropertyChangeEvent) {
                    //handle code here
                }
            });
        
    Ссылочный обработчик событий в fxml:
            <Widget onNameChange="$manualAction"/>