Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 11

Инициализация FXML копонента

18.10.2012, 22:50. Показов 3208. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой, господа. Начал изучение FXML технологии.
Значит так. Пишу родительскую страницу программы, в ней есть BorderPane с некоторыми компонентами в top. Но при попытке программно добавить компонент в этот же BorderPane даёт мне НПЕ, типо не инициализирован этот BorderPane. Подскажите где я ошибаюсь. Примеры показываю.

Загрузка fxml файла главной страницы.
Java
1
2
3
4
5
6
7
File rootFxml = new File("resourcesModule/fxml/" + locale + "/root.fxml");
        try {
            root = FXMLLoader.load(rootFxml.toURL(), null, new JavaFXBuilderFactory());
            setTop(root);
        } catch (IOException e) {
            e.printStackTrace();
        }

Попытка добавить другую страницу в setCenter по кнопке

Java
1
2
3
4
5
6
7
8
9
    @FXML protected void goToComPhot() {
        File comPhotoPageFXML = new File("resourcesModule/fxml/" + locale + "/comPhotoPage.fxml");
        try {
            Parent comPhotoPage = (Parent)FXMLLoader.load(comPhotoPageFXML.toURL(), null, new JavaFXBuilderFactory());
            root.setCenter(comPhotoPage);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2012, 22:50
Ответы с готовыми решениями:

Инициализация большого количества элементов @FXML
Здравствуйте,господа программисты Передо мной стоит задача: написать морской бой с интерфейсом на javaFX. На данный момент имею...

Аналог копонента MaskEdit с Делфи в VC++
В Delphi есть компонент MaskEdit (необходимо поле для форматированного ввод даты) - подскажите есть ли аналог в VC++

Что такое инициализация сегментов или инициализация регистров?
Подскажите, что такое инициализация сегментов или инициализация регистров? Вот строчка программы из ассемблера: mov Ax, DATA mov DS, AX

5
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
19.10.2012, 10:20
покажите код где вы обьявляете root и где инициализируете
1
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 11
19.10.2012, 11:54  [ТС]
В файле fxml fx:id="root" на этом borderPane. И в контроллере @FXML private BorderPane root;
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
19.10.2012, 12:18
нет кода - нет ответа
1
0 / 0 / 0
Регистрация: 14.05.2012
Сообщений: 11
19.10.2012, 12:30  [ТС]
Цитата Сообщение от mutagen Посмотреть сообщение
нет кода - нет ответа
Вот строка из файла root.fxml
Java
1
<BorderPane fx:id="root" prefHeight="388.0" prefWidth="632.0" xmlns:fx="http://javafx.com/fxml" fx:controller="com.erpartner.module.Module">

Строка декларации BorderPane в контроллере
Java
1
@FXML private BorderPane root;
Ну и при старте этот root цепляем к stage.
Java
1
2
Parent page = (Parent) FXMLLoader.load(new File("resourcesModule/fxml/" + locale + "/" + fxml).toURL(), null, new JavaFXBuilderFactory());
        setCenter(page);
В этих местах всё отлично. Но при добавлении нового компонента в root вылетает нпе.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
19.10.2012, 22:10
сделайте проверку перед присвоением
Java
1
2
3
4
5
6
7
8
9
10
11
@FXML protected void goToComPhot() {
        File comPhotoPageFXML = new File("resourcesModule/fxml/" + locale + "/comPhotoPage.fxml");
        try {
            Parent comPhotoPage = (Parent)FXMLLoader.load(comPhotoPageFXML.toURL(), null, new JavaFXBuilderFactory());
if(comPhotoPage != null)
            root.setCenter(comPhotoPage);
else throw new Exception("bla bla NULL");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
подозреваю что файл надо подгружать до нажатия кнопки, так как скорость отработки парсера хмл и скорость присвоения root сильно отличаются, отсюда и НПЕ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2012, 22:10
Помогаю со студенческими работами здесь

Не видит fxml
Создал view пытаюсь его загрузить , но выдает ошибку , пробывал по разному указать путь к fxml ,но никак не хочет ее видеть

Не видит FXML
Как видно из структуры проекта, нужный .fxml лежит во View. package Model (class Main) навсего его не видит.

Java FX+FXML
Есть двумерный массив в классе мейн int C = new int; C = 1; C = 1; C = 1; C = 1; C...

Fxml mySQL
Вопрос прост Как просмотреть БД в FXML таблице, такой код не работает: String sql=&quot;select*from emplyeeinfo&quot;; ...

Окна + fxml
Создал программно меню программы. Обработчик кнопки: producer.setOnAction(new EventHandler&lt;ActionEvent&gt;() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru