[英]Close a Dialog in JavaFX using a button
我想在JavaFX中创建一个联系人应用程序,我创建了一个对话框,当我想打电话给某人并使用实际按钮而不是按钮类型关闭它时,该对话框应该打开。
我试图为其编写代码(如下),但是它只是没有关闭对话框,我也不知道为什么。
有人可以帮忙吗?
谢谢。
public void showCallDialog(Contact contact){
contact = tableView.getSelectionModel().getSelectedItem();
Dialog<ButtonType> dialog = new Dialog<>();
dialog.setTitle("Calling");
FXMLLoader loader = new FXMLLoader();
try{
URL url = Controller.class.getResource("call.fxml");
loader.setLocation(url);
dialog.getDialogPane().setContent(loader.load());
CallController controller = loader.getController();
controller.setNameLabel(contact);
dialog.show();
Button button = controller.getEndCallButton();
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
System.out.println("pressed");//tested if it listens, and this prints out the "pressed"
dialog.close();
}
});
}catch (IOException e){
System.out.println("Couldn't load the dialog");
e.printStackTrace();
}
}
@FXML
public void call(){
Contact contact = tableView.getSelectionModel().getSelectedItem();
showCallDialog(contact);
}
如果将非null
值分配给result
属性,则仅关闭Dialog
。 这需要在您的代码中“手动”完成:
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
System.out.println("pressed");//tested if it listens, and this prints out the "pressed"
dialog.setResult(ButtonType.CLOSE);
dialog.close();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.