我正在尝试类似每当我按下一个按钮时,我想到达在无限循环中声明的 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);
}
}