Работа с gui - Java
Формулировка задачи:
есть, допустим, несколько кнопок, я хочу по очереди заменить им цвета, как это сделать, Thread.sleep не принес результата, так как сначала ожидаются все слипы, а потом, все равно, одновременно меняется цвет у всех кнопок
Решение задачи: «Работа с gui»
textual
Листинг программы
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class Cube extends Application {
private boolean stop = false;
private int q = 0;
@Override
public void start(Stage primaryStage) throws Exception {
Button buttons[] = new Button[3];
for (int i = 0; i < 3; i++) {
buttons[i] = new Button(String.valueOf(i));
buttons[i].setPrefSize(100, 100);
}
new Thread(() -> {
while (!stop) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
Platform.runLater(() ->
buttons[q++].setStyle("-fx-background-color: #" + ((int) (Math.random() * 10)) + ((int) (Math.random() * 10)) + ((int) (Math.random() * 10)))
);
if (q >= 3) q = 0;
}
}).start();
primaryStage.setScene(new Scene(new HBox(20, buttons)));
primaryStage.show();
}
@Override
public void stop() throws Exception {
stop = true;
super.stop();
}
}