아래 코드에서 창 배경색은 이후에만 적용되고 이후는 변경되지 않습니다. 그리고 나는 이유를 이해할 수 없다 : 내가 아는 한, 프로그램은 라인 sc.next();
다음에 입력을 기다리기 시작해야한다. 배경 변경을 강제하는 방법이 있습니까? 입력을 기다리기 전에 수행하려면?배경을 즉시 바꾸는 방법?
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import java.util.Scanner;
public class NewMain extends Application {
@Override
public void start(Stage primaryStage) {
Pane pane = new Pane();
primaryStage.setScene(new Scene(pane, 300, 300));
primaryStage.show();
pane.setBackground(new Background(new BackgroundFill(Color.BLACK, CornerRadii.EMPTY, Insets.EMPTY)));
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(str);
}
public static void main(String[] args) {
launch(args);
}
}
(sc.next()는 * 차단 호출 *이므로) * 이벤트 발송 스레드 *를 차단하고있을 가능성이 큽니다. –
@TimothyTruckle 실제로 * FX 응용 프로그램 스레드 *. Event Dispatch Thread는 AWT와 Swing이 UI를 렌더링하고 이벤트를 처리하기 위해 사용하는 스레드의 이름입니다. –