2016-08-25 2 views
0

Я хотел бы знать, как перемещать данные из одной сцены в javafx в другую. Я знаю, что на серверном программировании, например php, вы используете SESSION, но я понятия не имею о настольном приложении.Как обмениваться данными между двумя сценами в javafx

+0

Попробуйте создать класс 'Session', который содержит нужные вам переменные, и вы можете либо передать его в новую сцену, либо просто иметь« SessionFactory », который вы можете вызвать статически, чтобы получить сеанс. – Orin

+5

Вопрос очень широк и есть много возможных ответов. Вероятно, наиболее распространенным способом, который это делается в настольных приложениях, является использование архитектуры типа MVC и совместное использование экземпляра одной модели между контроллерами (с односторонним соответствием между контроллерами и представлениями). См. http://stackoverflow.com/questions/32342864/applying-mvc-with-javafx Вы также можете использовать фреймворки зависимостей (Spring, Guice или специфичные для JavaFX [afterburner.fx] (http: //afterburner.adam -bien.com/) или другие), чтобы ввести экземпляр модели в контроллеры. –

ответ

1

В зависимости от того, какую область действия вы хотите применить, вы можете выбрать один из следующих вариантов: переход от широкого к узкому:

A) Используйте одноэлементный объект, доступ к которому можно получить глобально и позволять ему хранить любую требуемую информацию.

B) Используйте глобальную шину событий/область действия, которая позволяет прослушивать определенные события. Прикрепите сцену в качестве слушателя к шине событий. Затем события передают информацию, необходимую для обработки события.

C) Отслеживать сцены вручную и вызывать методы непосредственно на Scene экземпляров для наименьшего объема.

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