0
GridPane
에 두 개의 javafx.scene.shape.Rectangle
개체를 생성하고 다음을 수행합니다.Javafx에서 직사각형의 색상을 동적으로 변경하십시오.
rectArray = new Rectangle[2];
boardGrid.setStyle("-fx-background-color: #C0C0C0;");
rectArray[0] = new Rectangle(12,12);
rectArray[0].setFill(Color.AQUA);
boardGrid.add(rectArray[0], 2, 0);
rectArray[1] = new Rectangle(12,12);
rectArray[1].setFill(Color.BLACK);
boardGrid.add(rectArray[1], 2, 1);
Button buttonStart = new Button("Change color");
buttonStart.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
rectArray[0].setFill(Color.RED);
try {
Thread.sleep(2000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
rectArray[1].setFill(Color.AZURE);
}
});
boardGrid.add(buttonStart, 3, 1);
initializeScene(primaryStage, boardGrid);
...
나는 두 사각형 (아쿠아의 한 검은 한) 내가 버튼을 클릭하면, 나는 2 초 색상의 변화를 볼 수 있도록 기다려야 할 것을 볼 수 있어요 코드를 실행하면 두 직사각형의
Thread.sleep(2000)
이 호출되기 전에 하나의 사각형의 색을 변경 한 다음 다음 사각형의 색을 변경합니다.
제 질문은 왜 2 초를 기다려야합니까? 사각형의 색상을 동적으로 업데이트 할 수있는 방법이 있습니까?