javafx 自定义对话框

1、写fxml如下

本人css不怎么会玩,请见谅













   
      
         
            

         
   


2、创建对话框

本对话框使用的是第三方对话框,jar包导入请参看以前的文章
在这里插入图片描述
创建代码如下

 /**
     * 检测授权码
     */
    private void showCheckDialog() {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(Start.class.getResource("fxml/check_active.fxml"));  //静态读取,无法获取controller
        try {
            if(loader == null){
                return;
            }
            GridPane  rootLayout = loader.load();

            JFXAlert alert = new JFXAlert(primaryStage);
            alert.initModality(Modality.APPLICATION_MODAL);
            alert.setOverlayClose(false);
            alert.setContent(rootLayout);
            alert.show();

            CheckActiveController checkActiveController= loader.getController();
            checkActiveController.init(primaryStage);

            checkActiveController.close(alert);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

CheckActiveController代码如下

package sample.controller;

import com.jfoenix.controls.JFXAlert;
import com.jfoenix.controls.JFXButton;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;

public class CheckActiveController {
    private Stage primaryStage;

    @FXML
    private ImageView iv_dialog_close;
    @FXML
    private TextField tf_check;
    @FXML
    private JFXButton btn_dialog_sure;

    public void init(Stage primaryStage){
        this.primaryStage=primaryStage;
    }

    /**
     * 关闭对话框
     */
    @FXML
    public void dialogClose(){
        if(alert!=null){
            alert.hide();
        }
    }

    @FXML
    public void dialogSure(){
        if(alert!=null) {
            alert.hide();
        }
        check();
    }


    private JFXAlert alert;
    public void close(JFXAlert alert){
        this.alert=alert;
    }


    /**
     * 检查验证码
     */
    private void check() {
    }

}

效果如下

javafx 自定义对话框_第1张图片
javafx 自定义对话框_第2张图片

你可能感兴趣的:(javaFx)