Dialog弹窗

  • 创建Dialog弹窗泛型代表弹窗关闭后的返回值类型Dialog<ButtonType> dialog = new Dialog<>();

  • 添加按钮并获取

    dialog.getDialogPane().getButtonTypes().add(ButtonType.CLOSE);  
    dialog.getDialogPane().getButtonTypes().add(ButtonType.OK);  
    Button close = (Button) dialog.getDialogPane().lookupButton(ButtonType.CLOSE);  
    Button ok = (Button) dialog.getDialogPane().lookupButton(ButtonType.OK);
    
  • 设置文本和标题

    dialog.setHeaderText("I'm headerText");  
    dialog.setTitle("dialog");  
    dialog.setContentText("I'm content");
    
  • 设置图标dialog.setGraphic(new Button("icon"));

  • 设置界面大小dialog.getDialogPane().setPrefSize(300,300);

  • 设置按钮点击后的效果(务必在show之前声明)

    dialog.showAndWait().ifPresent(buttonType -> {  
        switch (buttonType.getButtonData()) {  
            case OK_DONE:  
                dialog.setContentText("We are reader");  
                break;  
            case CANCEL_CLOSE:  
                dialog.setContentText("You are gay");  
                break;  
            default:  
        }  
    });
    
  • 展示dialog.show();

  • 设置界面大小(在show()后设置才有效果)

    dialog.setWidth(300);  
    dialog.setHeight(300);
    
  • 以显示器为准设置位置

    dialog.setX(100);  
    dialog.setY(100);
    
  • 窗口关闭监听

    dialog.setOnCloseRequest(event1 -> {  
        System.out.println("关闭");  
    });
    
  • 获取点击的按钮

    dialog.setResultConverter(new Callback<ButtonType, ButtonType>() {  
        @Override  
        public ButtonType call(ButtonType param) {  
            System.out.println("param = " + param);  
            return param;  
        }  
    });