如果按下btnYes,我需要返回

时间:2015-11-16 23:52:17

标签: java javafx

public class StartPeriodMessage extends Stage implements Initializable{

    @FXML
    private  Button btnYes = new Button();
    @FXML
    private boolean btnYesStatus = false;

    public StartPeriodMessage(){

        try {

            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(getClass().
getResource("/fxmlFiles/StartPeriodMessage.fxml"));
            loader.setController(this);

            Parent root = loader.load();
            Scene scene = new Scene(root);

            setScene(scene);

        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    private void handelYesBtn(){

        setBtnYesStatus(true);
        this.close();
    }

    @FXML
    public void setBtnYesStatus(boolean btnYesStatus) {
        this.btnYesStatus = btnYesStatus;
        System.out.println(btnYesStatus); // prints true

    }

    public boolean isBtnYesStatus() {
        return btnYesStatus; // returns false     
    }
}
public class WorkPeriodController extends Stage implements Initializable{

    @FXML
    private void handlebtnStartPeriod() throws InterruptedException{
       StartPeriodMessage spm = new StartPeriodMessage();
       spm.initOwner(this);
       spm.initModality(Modality.APPLICATION_MODAL);
       spm.show();

       if (spm.isBtnYesStatus()) // always false {

            btnStartPeriod.setDisable(true);

            // do some actions
       }
    }

2 个答案:

答案 0 :(得分:0)

您可以轻松地将动作事件设置为您的按钮,如下所示:

  @FXML
    private void btnYes(ActionEvent event) {
    // your action here..
    System.out.println(Button is pressed..);
  }

你不需要去初始化部分FXMLLoader会为你做这件事

@FXML
private Button btnYes = new Button();

答案 1 :(得分:0)

您无需在任何地方编写@FXML!仅当您从fxml文件引用方法/变量时。

如果从FXML文件中引用类似btnYes的变量,则会在那里初始化而不是在您的类中。 你在哪里加载你的fxml文件?如果以下(我刚刚清理它)不起作用,请同时提供您的fxml文件和您调用的代码isBtnYesStatus();

@FXML
private  Button btnYes;
private boolean btnYesStatus = false;

@FXML
private void handelYesBtn(){
    this.setBtnYesStatus(true);
    this.close();
}

public void setBtnYesStatus(boolean btnYesStatus) {
    this.btnYesStatus = btnYesStatus;
    System.out.println(btnYesStatus);
} 

public boolean isBtnYesStatus() {
    return btnYesStatus;   
}