Java 如果按了btnYes,我需要返回
您可以轻松地将操作事件设置为按钮,如下所示:Java 如果按了btnYes,我需要返回,java,javafx,Java,Javafx,您可以轻松地将操作事件设置为按钮,如下所示: public class WorkPeriodController extends Stage implements Initializable{ @FXML private void handlebtnStartPeriod() throws InterruptedException{ StartPeriodMessage spm = new StartPeriodMessage(); spm.init
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
}
}
你不需要去做初始化,FXMLLoader会帮你做的
@FXML
private void btnYes(ActionEvent event) {
// your action here..
System.out.println(Button is pressed..);
}
你不必到处写@FXML!仅当从fxml文件引用方法/变量时 如果您从FXML文件中引用一个变量,如btnYes,它将在那里初始化,而不是在类中初始化。 在哪里加载fxml文件?如果以下内容(我刚刚清理过)不起作用,请同时提供您的fxml文件和调用isBtnYesStatus()的代码
该应用程序由许多阶段组成,这是一个弹出消息阶段,用于检查用户是否单击“是”,它将在另一个阶段执行一些操作,因此我需要返回是否按下“是”按钮。如果您不理解我的意思,我可以通过team viewer共享屏幕。谢谢谢谢@FXML让我很困惑,现在我知道什么时候写它了。但它不起作用,我会附上FXML和代码。请编辑你的问题,而不是张贴这个链接。因此,您正在创建一个新的
StartPeriodMessage
,并对其调用.show()。然后立即调用l isBtnYesStatus()。由于btnYesStatus的默认错误初始化,它将始终返回false。然后你可以点击你的按钮,布尔值就改变了。这不能正常工作,但这并不是一个真正的错误,因为它在你编码的时候是wokring。对于这个用例,您应该实现一个回调!
@FXML
private void btnYes(ActionEvent event) {
// your action here..
System.out.println(Button is pressed..);
}
@FXML
private Button btnYes = new Button();
@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;
}