Hey Leute, ich schreibe gerade an einem Programm in dem ich ein leeres Label erstellen muss und das rot und grau blinken lassen muss. Da das irgendwie nicht funktioniert habe ich eine Testklasse geschrieben um mir die Denkweise anzueignen.
Was jetzt passieren sollte wenn ich das Programm starte ist, dass das Feld grau ist und in der Konsole grey ausgegeben wird. Nach 500ms Wartezeit sollte es dann grün werden und es sollte grün ausgegeben werden usw.
Was aber wirklich passiert und was mich total irritiert ist folgendes:
Das Feld bleibt grau, es wird grau ausgegeben. Nach der Wartezeit bleibt das Feld immernoch grau und es wird green ausgegeben. Nach einer weiteren Wartezeit bleibt das Feld immernoch grau und es wird blue ausgegeben. Nach der nächsten Wartezeit wird das Feld plötzlich rot und es wird red ausgegeben. Sprich er gibt zwar die Wörter aus (das habe ich als Kontrolle eingefügt) aber färbt das Feld nur beim letzten "Befehl" und nicht schon vorher.
Mach ich da irgendwas falsch?
Code:
package meldetafel;
import javafx.application.Application;
...
public class Testklasse extends Application {
@Override
public void start(Stage primaryStage) throws InterruptedException {
Label Signalfeld = new Label();
Signalfeld.setPrefSize(100, 100);
HBox box = new HBox(10);
box.getChildren().add(Signalfeld);
primaryStage.setScene(new Scene(box));
primaryStage.show();
Signalfeld.setStyle("-fx-background-color: grey;");
System.out.println("grey");
Thread.sleep(500);
Signalfeld.setStyle("-fx-background-color: green;");
System.out.println("green");
Thread.sleep(500);
Signalfeld.setStyle("-fx-background-color: blue;");
System.out.println("blue");
Thread.sleep(500);
Signalfeld.setStyle("-fx-background-color: red;");
System.out.println("red");
}
public static void main(String[] args) {
launch(args);
}
}
Was aber wirklich passiert und was mich total irritiert ist folgendes:
Das Feld bleibt grau, es wird grau ausgegeben. Nach der Wartezeit bleibt das Feld immernoch grau und es wird green ausgegeben. Nach einer weiteren Wartezeit bleibt das Feld immernoch grau und es wird blue ausgegeben. Nach der nächsten Wartezeit wird das Feld plötzlich rot und es wird red ausgegeben. Sprich er gibt zwar die Wörter aus (das habe ich als Kontrolle eingefügt) aber färbt das Feld nur beim letzten "Befehl" und nicht schon vorher.
Mach ich da irgendwas falsch?