Witam. Dlaczego w pierwszej wersja(patrz pętla while) zadziała zatrzymanie pętli, a w drugiej i trzeciej pętla się nie zatrzyma? Zależy mi na tym aby zakończyć pętle while wykonywaną w osobnym wątek przy pomocy przycisku. Pozdrawiam.
public class Tex implements Runnable{
JavaFX_Thread ty;
public Tex(JavaFX_Thread ty){
this.ty=ty;
System.out.println("UTWORZENIE OBIEKTU!");
}
@Override
public void run(){
System.out.println("RUN");
while(ty.isB()){
//1: DZIAŁA System.out.println(ty.isB());
//2: NIE DZIAŁA ty.isB();
//3:
}
System.out.println("PĘTLA STOP");
}
}
public class JavaFX_Thread extends Application {
Tex tex;
Thread thread;
private boolean b;
@Override
public void start(Stage primaryStage) {
Button btn = new Button("Start");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
b=false;
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Test");
primaryStage.setScene(scene);
primaryStage.show();
b=true;
tex=new Tex(this);
thread = new Thread(tex);
thread.start();
System.out.println("START WĄTKU");
}
public boolean isB(){
return b;
}
}