Hallo liebe Java-Community,
ich probiere verzweifelt folgendes Problem zu lösen:
Ich möchte gerne mit der Application (App1.class) starten und diese an die Klasse OtherClass.class in die statische Methode test(App1 app) überführen.
In dieser Methode wird eine while-Schleife vielfach ausgeführt. Innerhalb der Schleife habe ich eine Random-Funktion eingebaut, die beim Wert = 1 wieder zurück auf die Klasse App1 zugreift - und zwar auf die Methode update(String txt).
Dort möchte ich dann (wie auch immer?) den Text des Labels aus App1 verändern und anzeigen lassen. Leider funktioniert das gar nicht. So wie ich das unten vorstelle, wird beim Ausführen nur ein leeres Fenster angezeigt, bis der Algorithmus aus OtherClass.class abgearbeitet ist.
Ich hatte auch schon viel mit Threads sowie property-bindings rumprobiert und bin immer noch zu keiner Lösung gekommen... Das müsste doch ein multithreading-Problem von JavaFX sein?!
Für Hilfe wäre ich äußerst dankbar.
Viele Grüße
ich probiere verzweifelt folgendes Problem zu lösen:
Ich möchte gerne mit der Application (App1.class) starten und diese an die Klasse OtherClass.class in die statische Methode test(App1 app) überführen.
In dieser Methode wird eine while-Schleife vielfach ausgeführt. Innerhalb der Schleife habe ich eine Random-Funktion eingebaut, die beim Wert = 1 wieder zurück auf die Klasse App1 zugreift - und zwar auf die Methode update(String txt).
Dort möchte ich dann (wie auch immer?) den Text des Labels aus App1 verändern und anzeigen lassen. Leider funktioniert das gar nicht. So wie ich das unten vorstelle, wird beim Ausführen nur ein leeres Fenster angezeigt, bis der Algorithmus aus OtherClass.class abgearbeitet ist.
Ich hatte auch schon viel mit Threads sowie property-bindings rumprobiert und bin immer noch zu keiner Lösung gekommen... Das müsste doch ein multithreading-Problem von JavaFX sein?!
Java:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class App1 extends Application{
Label label;
int count;
public void start(Stage stage){
label = new Label("start...");
Pane pane = new Pane(label);
Scene scene = new Scene(pane, 250, 30);
stage.setScene(scene);
stage.show();
OtherClass.test(this);
}
public void update(String txt){
label.setText(txt);
}
public static void main(String[] args){
launch(args);
}
}
import java.util.Random;
public class OtherClass {
public static void test(App1 app){
Random r = new Random();
int count=0;
while(count<10000000){
if(r.nextInt(4)+1 == 1)
app.update("Treffer in Runde = "+count);
count++;
}
}
}
Für Hilfe wäre ich äußerst dankbar.
Viele Grüße