Übergabe von Variablen aus zwei *.fx files

JavaFX und die Programmierung

Moderator: wegus

Antworten
johannes
Beiträge: 1
Registriert: 11.11.2010, 16:12

Übergabe von Variablen aus zwei *.fx files

Beitrag von johannes » 11.11.2010, 16:57

Hallo zusammen,
stehe vor folgendem Problem und komme nicht weiter. Ich habe in meinem Projekt zwei "JavaFX Desktop Design Files" (eins.fx + zwei.fx). Nach Ablauf von von eins.fx möchte ich das aktuelle "Stage aus eins.fx" schließen und das neue "Stage aus zwei.fx" starten. Dies mache ich in einer "funktion". Eigentlich klappt alles bestens. Das Problem ist, dass ich beim Wechseln der Stages versuche eine Variable (varInStageEins) an die Variable (varInStageZwei) zu übergeben. Das klappt leider nicht. Hoffe ihr könnt mir sagen was ich bei der Übergabe falsch mache. Zur Zeit versuche ich es so zu realisieren:
eins.fx:

Code: Alles auswählen

public class Eins {
 
          var varInStageEins: String;
          var design:Zwei = Zwei{
                varInStageZwei: varInStageEins;
                }

          function stageWechsel(){
                       javafx.stage.Stage{
                                  title: "Zwei"
                                  scene: design.getDesignScene();
                                   }
                       println("Eins: {varInStageEins}")
                       scene.stage.close();
                       }
}

zwei.fx:

Code: Alles auswählen

public class Zwei {
 
          var varInStageZwei: String;

          function ausgabe(){
                    println("Zwei: {varInStageZwei}")
                    }
}

die Ausgabe in der Konsole ist:
Eins: abcd
Zwei: //null

übrigens kann ich auch nicht aus Zwei.fx folgendermaßen auf die Variable zugreifen:
var classEins = Eins{};
varInStageZwei = classEins.varInStageEins

Irgendwie versteh ich glaube ich nicht wirklich wie der code eigentlich weiter läuft nachdem ich mein erstes Stage geschlossen habe. Hoffe ihr könnt (bessergesegt: wollt, weil es vermutlich was ganz banales ist) mir helfen, da ich an dieser Stelle NICHT weiter komme.

Gruß Johannes

Mitch
Beiträge: 79
Registriert: 02.03.2010, 12:39

Re: Übergabe von Variablen aus zwei *.fx files

Beitrag von Mitch » 05.01.2011, 15:35

So ich werde mich mal wieder öffter hier herumtreiben :D

Falls das Problem immernoch besteht:

Ich mache solche sachen immer über Variablen. Also:

Code: Alles auswählen

var eins:Eins= Eins{...};
var zwei:Zwei=Zwei{...};
var stage:Stage;

stage=Stage{
...
content:[
 eins
]
}


function switchStage() {
     delete eins from Stage.scene.content;
     insert zwei into Stage.scene.content;
}
Zu beachten ist allerdings, dass du Stage Eins nicht schließt, sondern lediglich aus dem Stage löscht. Stage Eins ist also immernoch im Speicher.
Nun kannst du die Variablen einfach "rüberkopieren".
z.B.:

Code: Alles auswählen

zwei.varInStageZwei=eins.varInStageEins;
Ist vielleicht nicht die Eleganteste Lösung aber hoffe es hilft weiter.

MfG

Antworten