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

Передача значения в метод initialize() контроллера из другого контроллера

10.05.2017, 23:17. Показов 3513. Ответов 0

Студворк — интернет-сервис помощи студентам
Есть контроллер ChooseLizController, реализующий окно с таблицей, в которой можно выбрать лицевой счет для редактирования:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class ChooseLizController implements Initializable {
    
    . . .
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        initData();
        initListeners();
    }
 
    private void initListeners() {
        //обработка 2х нажатия мыши:
        tblVyb.setRowFactory( tv -> {
            TableRow<TableItem> row = new TableRow<>();
            row.setOnMouseClicked(event -> {
                if (event.getClickCount() == 2 && (! row.isEmpty()) ) {
                    //запись в таблице, на которой дважды кликнули
                    TableItem rowData = row.getItem();
 
                    //это значение хочу получить в контроллере LizController
                    int numLiz = rowData.getLiz();
 
                    //открытие окна для редактирования лицевого счета
                    //прошу не вникать - здесь используются стороняя библиотека по созданию окон MDI-приложения
                    Node content = null;
                    try {
                        content = FXMLLoader.load(getClass().getResource("Liz.fxml"));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    //Create a Default MDI Without Icon
                    MDIWindow mdiWindow = new MDIWindow("ID_liz",
                    new ImageView("/assets/WindowIcon.png"),
                    "Редактирование лицевого счета",
                    content);
                    //Add it to the container
                    Main.getMDICanvas().addMDIWindow(mdiWindow);
                }
            });
            return row ;
        });
    }
 
    . . .
 
}
Контроллер LizController созданного окна по редактированию лицевого счета:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class LizController implements Initializable {
 
    . . .
    
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        //здесь я хочу знать номер лицевого счета, выбранный в контроллере ChooseLizController 
        //чтобы по нему выбрать данные из БД и заполнить окно
    }
 
    . . .
 
}
Вопрос. Как мне получить номер лицевого счета в методе initialize() ?
Примечание. Данный метод автоматически вызывается при создании экземпляра контроллера (при создании окна).

Добавлено через 57 минут
придумал обходной маневр:

В классе ChooseLizController :

добавить код:
Java
1
2
3
    //для передачи значения в контролер LizController
    private int numLiz;
    public int getNumLiz() { return numLiz; }
изменить код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
                    Node content = null;
                    try {
                        FXMLLoader loader = new FXMLLoader(getClass().getResource("Liz.fxml"));
                        content = loader.load();
                        LizController controller = loader.getController();
                        //указываем контроллер откуда брать данные
                        controller.setChooseLizController(this);
                        //вызываем свой метод для инициализации окна
                        controller.myInitialize();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

В классе LizController
добавить код:

Java
1
2
3
4
5
6
7
8
    //для получения данных из контроллера
    private ChooseLizController chooseLizController;
    public void setChooseLizController(ChooseLizController c) { chooseLizController = c; }
 
    //свой метод инициализации окна
    public void myInitialize() {
        System.out.println("Номер лицевого счета = " + chooseLizController.getNumLiz());
    }
В этом случае вместо метода initialize() вызываю свой метод myInitialize(). Мне он подойдет если не будет других вариантов.

Если кто подскажет как получить номер лицевого счета в методе initialize(), буду рад.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2017, 23:17
Ответы с готовыми решениями:

Вызвать метод контроллера из представления или другого контроллера
Мне нужно по кнопке вызвать метод LogOut в контроллере AccountController. Я пытаюсь сделать так: &lt;input type=&quot;button&quot;...

Как передать из одного контроллера объект модели в строго типизированное представление другого контроллера
Есть строго типизированное представление в контроллере Main, в методе ListOrders. Как в него можно передать модель, класса Customer из...

Передача данных из CKEditor в метод контроллера
В общем код представления: &lt;html&gt; &lt;head&gt; &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; /&gt; &lt;title&gt;EditC&lt;/title&gt; ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2017, 23:17
Помогаю со студенческими работами здесь

передача выбранного значения из контроллера в дропдаун во вью
Ситуация следующая: на вью вызывается метод: @Html.Action(&quot;_PartChangeLapDocPricePosItemsTest&quot;, new {...

Отправка значения в метод контроллера из списка <SELECT>
Добрый день! Вывожу из БД в список &lt;select&gt;&lt;option&gt; заголовки статей, но отправлять в POSTверсии метода в виде параметра заголовок не...

Как выполнить редирект с одного метода контроллера в другой, без пересоздания контроллера
Я делаю в одном из методов RedirectToAction() , в результате чего, перед перенаправлением обновляется текущий контроллер. Как сделать...

Изменение компонента из другого контроллера
Есть контроллер public class BottomController { private Stage stage; private Main main; private RootController...

Как вызвать Action с другого контроллера?
есть екшн actionRecovery в контроллере ForgotСontroller ,в actionRecovery я хочу вызвать екшн actionLogin который находится в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru