javafx如何从消息框中获取返回值
我有一个问题,我无法获得返回值,因为我想在控制器中使用它。如何在关闭窗口后从复选框中获取返回值。因为我需要控制器中的返回值。谢谢javafx如何从消息框中获取返回值,javafx,return-value,messagebox,Javafx,Return Value,Messagebox,我有一个问题,我无法获得返回值,因为我想在控制器中使用它。如何在关闭窗口后从复选框中获取返回值。因为我需要控制器中的返回值。谢谢 首先,我建议您不要使用与标准库中的名称匹配的名称。“名称复选框不合适,因为它具有该名称的控件。使用一些描述性的东西,比如CheckBoxDialog 避免使用静态上下文。在这种情况下,这是不必要的,并且显示出一种糟糕的风格 这是一个保持您使用的静态方法的示例实现 public class CheckBoxDialog { public static final
首先,我建议您不要使用与标准库中的名称匹配的名称。“名称<代码>复选框不合适,因为它具有该名称的控件。使用一些描述性的东西,比如
CheckBoxDialog
避免使用静态上下文。在这种情况下,这是不必要的,并且显示出一种糟糕的风格
这是一个保持您使用的静态方法的示例实现
public class CheckBoxDialog {
public static final String YES = "Y";
public static final String NO = "N";
private String exitCode = NO;
private Stage window;
private Label label;
public CheckBoxDialog() {
createGUI();
}
private void createGUI() {
window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
window.setMinWidth(250);
label = new Label();
Button yButton = new Button(YES);
Button nbButton = new Button(NO);
yButton.setOnAction(e -> {
exitCode = YES;
window.close();
});
nbButton.setOnAction(e -> {
exitCode = NO;
window.close();
});
VBox layout = new VBox(10);
layout.getChildren().addAll(label,yButton, nbButton);
layout.setAlignment(Pos.CENTER);
Scene scene = new Scene(layout);
window.setScene(scene);
}
public void setTitle(String title) {
window.setTitle(title);
}
public void setMessage(String message) {
label.setText(message);
}
public String showAndWait() {
window.showAndWait();
return exitCode;
}
public static String display(String title, String message){
CheckBoxDialog dlg = new CheckBoxDialog();
dlg.setTitle(title);
dlg.setMessage(message);
return dlg.showAndWait();
}
}
首先,我建议您不要使用与标准库中的名称匹配的名称。“名称<代码>复选框不合适,因为它具有该名称的控件。使用一些描述性的东西,比如
CheckBoxDialog
避免使用静态上下文。在这种情况下,这是不必要的,并且显示出一种糟糕的风格
这是一个保持您使用的静态方法的示例实现
public class CheckBoxDialog {
public static final String YES = "Y";
public static final String NO = "N";
private String exitCode = NO;
private Stage window;
private Label label;
public CheckBoxDialog() {
createGUI();
}
private void createGUI() {
window = new Stage();
window.initModality(Modality.APPLICATION_MODAL);
window.setMinWidth(250);
label = new Label();
Button yButton = new Button(YES);
Button nbButton = new Button(NO);
yButton.setOnAction(e -> {
exitCode = YES;
window.close();
});
nbButton.setOnAction(e -> {
exitCode = NO;
window.close();
});
VBox layout = new VBox(10);
layout.getChildren().addAll(label,yButton, nbButton);
layout.setAlignment(Pos.CENTER);
Scene scene = new Scene(layout);
window.setScene(scene);
}
public void setTitle(String title) {
window.setTitle(title);
}
public void setMessage(String message) {
label.setText(message);
}
public String showAndWait() {
window.showAndWait();
return exitCode;
}
public static String display(String title, String message){
CheckBoxDialog dlg = new CheckBoxDialog();
dlg.setTitle(title);
dlg.setMessage(message);
return dlg.showAndWait();
}
}
你想从这个对话中得到什么?如果用户单击Ybutton,我想返回Y,即id,并在controller@mrmcwolf中得到字符串“Y”。你想从这个对话中得到什么?如果用户单击Ybutton,我想返回Y,即id,并在controller@mrmcwolf中得到字符串“Y”