2016-08-25 3 views
0

teilen Ich möchte wissen, wie man Daten von einer Szene in javafx zu einem anderen bewegt. Ich weiß, dass in serverseitige Programmierung wie PHP verwenden Sie SESSION, aber ich habe keine Ahnung von Desktop-AppWie Daten zwischen zwei Szenen in javafx

+0

Versuchen Sie, eine Klasse 'Session' zu erstellen, die die gewünschten Variablen enthält, und Sie können sie entweder an die neue Szene übergeben oder eine' SessionFactory', die Sie statisch abrufen können, um die Sitzung abzurufen. – Orin

+5

Die Frage ist sehr breit und es gibt viele mögliche Antworten. Die gebräuchlichste Methode in Desktop-Apps ist die Verwendung einer MVC-Architektur und die gemeinsame Nutzung einer einzelnen Modellinstanz zwischen den Controllern (mit einer eindeutigen Übereinstimmung zwischen Controllern und Ansichten). Siehe z.B. http://StackOverflow.com/Questions/32342864/applying-mvc-with-Javafx Sie können auch Frameworks zur Abhängigkeitsinjektion verwenden (Spring, Guice oder JavaFX-spezifisch [afterburner.fx] (http: //afterburner.adam) -bien.com/) oder andere), um die Modellinstanz in die Controller zu injizieren. –

Antwort

1

Je nachdem, welchen Geltungsbereich Sie erzwingen möchten, können Sie eine der folgenden (gehen von breit zu schmal) wählen:

A) Verwenden Sie ein Singleton-Objekt, auf das global zugegriffen werden kann und in dem es alle Informationen enthalten kann, die Sie benötigen.

B) Verwenden Sie einen globalen/beschränkten Ereignisbus, der das Abhören bestimmter Ereignisse zulässt. Hängen Sie die Szene als Listener an den Event-Bus an. Die Ereignisse enthalten dann die Informationen, die Sie zum Behandeln des Ereignisses benötigen.

C) Szenen manuell verfolgen und Methoden direkt auf Scene Instanzen für den kleinsten Bereich aufrufen.