Работа с gui - Java

Узнай цену своей работы

Формулировка задачи:

есть, допустим, несколько кнопок, я хочу по очереди заменить им цвета, как это сделать, Thread.sleep не принес результата, так как сначала ожидаются все слипы, а потом, все равно, одновременно меняется цвет у всех кнопок

Решение задачи: «Работа с gui»

textual
Листинг программы
  1. import javafx.application.Application;
  2. import javafx.application.Platform;
  3. import javafx.scene.Scene;
  4. import javafx.scene.control.Button;
  5. import javafx.scene.layout.HBox;
  6. import javafx.stage.Stage;
  7.  
  8. public class Cube extends Application {
  9.  
  10.     private boolean stop = false;
  11.     private int q = 0;
  12.  
  13.     @Override
  14.     public void start(Stage primaryStage) throws Exception {
  15.         Button buttons[] = new Button[3];
  16.         for (int i = 0; i < 3; i++) {
  17.             buttons[i] = new Button(String.valueOf(i));
  18.             buttons[i].setPrefSize(100, 100);
  19.         }
  20.  
  21.         new Thread(() -> {
  22.             while (!stop) {
  23.                 try {
  24.                     Thread.sleep(1000);
  25.                 } catch (InterruptedException e) {
  26.                 }
  27.                 Platform.runLater(() ->
  28.                         buttons[q++].setStyle("-fx-background-color: #" + ((int) (Math.random() * 10)) + ((int) (Math.random() * 10)) + ((int) (Math.random() * 10)))
  29.                 );
  30.                 if (q >= 3) q = 0;
  31.             }
  32.         }).start();
  33.  
  34.         primaryStage.setScene(new Scene(new HBox(20, buttons)));
  35.         primaryStage.show();
  36.     }
  37.  
  38.     @Override
  39.     public void stop() throws Exception {
  40.         stop = true;
  41.         super.stop();
  42.     }
  43. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут