0

我正在尝试类似每当我按下一个按钮时,我想到达在无限循环中声明的 if 条件(条件是一个布尔变量)内部。所以动作侦听器方法的目的是使布尔字段为真,然后我可以在运行时turnFlag到达语句。System.out.println("Counter = " + counter);但是,当我按下按钮时,它永远不会进入if(turnFlag),即使控制台也将 turnFlag 打印为 true。我不明白为什么它不进入它?如果您能提供帮助,我将不胜感激。

public class ExampleController extends Thread implements Initializable {

    @FXML private static Button theButton;
    private int counter;
    private static boolean turnFlag=false;

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {

        counter = 0;
        this.start();
    }

    @Override
    public void run(){

        while(true){

            if(turnFlag){
                System.out.println("Counter = " + counter);
                turnFlag = false;
            }

        }
    }

    @FXML private void onAction(ActionEvent event){

        turnFlag=true;
        System.out.println("turnFlag = " + turnFlag);
    }
}

编辑:我忘了分享应用程序类,就像

public class Example2 extends Application {

    public static Parent rootPane;  

    @Override
    public void start(Stage primaryStage) throws IOException {

        rootPane = FXMLLoader.load(getClass().getResource("example.fxml"));

        Scene scene = new Scene(rootPane);

        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
4

0 回答 0