|
|
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Задача такая: Нужно сделать окно. В нем статус бар. В статусбаре - поле, в которое надо поместить логин. Хочу сделать это все с использованием FXML. Описываю статус бар: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Описываю контрол: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Создаю главную страницу и вывожу статус бар: Код: java 1. 2. 3. 4. Встает вопрос, как теперь увязать между собой StatusBar и hBox_statusbar? Если я вызываю: Код: java 1. 2. то я получаю NullPointerException, потому что private Label userlogin == null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 00:48 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Maxifly, JavaFX создает экземпляр контроллера и инжектит туда элементы GUI по аннотациям. Вы же создаёте свой собственный экземпляр контроллера, который не имеет никакого отношения к тому что использует JavaFX. Посмотрите пример здесь http://stackoverflow.com/a/23461254 Там показано как использовать FXMLLoader чтобы получить из него контроллер. Ещё остаётся открытым вопрос почему вы вызываете метод setLogin откуда-то снаружи контроллера, а не изнутри? Пользователь вводит пароль вне UI? Или это SSO? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 08:08 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо, я думал, что контроллер надо самому создать и потом как-то связывать самому. (Из туториала ораклового, как-то не очень это было ясно, ну или я невнимательно прочел). Что касается того, что Login снаружи - ну это просто для примера пока так у меня. Ну пусть это будет не логин, а что-то абстрактное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 10:48 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
MaxiflyЧто касается того, что Login снаружи - ну это просто для примера пока так у меня. Ну пусть это будет не логин, а что-то абстрактное. Ну, вот поэтому в туториале и не обговаривается. Обращаться к контроллеру снаружи в простых ситуациях надобности нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 11:04 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Хм. Ну а если есть окно приложения. В нем форма и строка состояния. В форме что-то заполняется, жмется кнопка. Нужно поменять строку состояния. И как это сделать? Тут же будет как я понимаю, два контрола, один под окно приложения а второй под окно формы. Или я что-то путаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 15:25 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Maxifly, Что-то путаете. Один FXML файл - один контроллер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 15:34 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Да вроде нет Окно приложения - FXML-файл1 - контроллер1 Форма - FXML-файл2-контроллер2 Так ведь? Теперь я делаю видимой в окне приложения форму. Работа с ней меняет строку состояния. Значит контроллер2 должен как-то доступиться к контроллеру 1. Или я что-то не так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 16:20 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
MaxiflyДа вроде нет Окно приложения - FXML-файл1 - контроллер1 Форма - FXML-файл2-контроллер2 Так ведь? Не обязательно. Можно в одном сделать. Разве что если у вас действительно большое приложение. MaxiflyТеперь я делаю видимой в окне приложения форму. Работа с ней меняет строку состояния. Значит контроллер2 должен как-то доступиться к контроллеру 1. Или я что-то не так понимаю? Архитектуру, таки да, немного не понимаете. Контроллерам не нужно знать друг о друге. Им нужно знать об общей Domain Model - структуры и поведение. Контролы (элементы UI) биндятся на эту модель. При вводе текста, UI формы через биндинг обновляет некое свойство Domain Model. Domain Model обрабатывает изменение и меняет другое свойство (статус)? Это свойство тоже "привязано" но уже к другому элементу UI. Его изменение через внутренние события отображается в строке статуса. Главная проблема тут это как в обоих контроллерах сослаться на один и тот же Domain Model. Вот пример http://stackoverflow.com/a/20101776 Можно через Spring IoC поискать решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 16:47 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Прикольно. Я и не подозревал, что так можно. С одной стороны все запутанно. А с другой - очень просто. Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2016, 23:58 |
|
||
|
JavaFX - FXML. Как вывести данные в Label
|
|||
|---|---|---|---|
|
#18+
MaxiflyПрикольно. Я и не подозревал, что так можно. С одной стороны все запутанно. А с другой - очень просто. Спасибо большое. Обязательно разберитесь в binding в JavaFX. Он весь на этом построен. Экономит кучу кода, хотя и далек от идеала. Почитайте про Model-View-ViewModel паттерн как одну из форм MVC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2016, 08:43 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=92&tid=2123868]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 396ms |

| 0 / 0 |
