Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javafx应用程序中单击对话框按钮时提高内存_Java_Memory Management_Memory Leaks_Javafx 2 - Fatal编程技术网

在javafx应用程序中单击对话框按钮时提高内存

在javafx应用程序中单击对话框按钮时提高内存,java,memory-management,memory-leaks,javafx-2,Java,Memory Management,Memory Leaks,Javafx 2,我附上了javafx的以下示例应用程序,其中有一个用于创建对话框的dialog类。当点击对话框上的按钮时,它的内存被提升太多。简单地说,当对话框显示-support in taskmanager时需要57kb,然后当我们单击按钮和dispose时,对话框-taskmanager显示其内存开始增加-最后它崩溃,出现转储内存异常 示例中有以下类 Dialog.java:它显示带有“确定-取消”按钮的对话框 MessageDialog.fxml:此fxml创建对话框的 MessageDialogCon

我附上了javafx的以下示例应用程序,其中有一个用于创建对话框的dialog类。当点击对话框上的按钮时,它的内存被提升太多。简单地说,当对话框显示-support in taskmanager时需要57kb,然后当我们单击按钮和dispose时,对话框-taskmanager显示其内存开始增加-最后它崩溃,出现转储内存异常

示例中有以下类 Dialog.java:它显示带有“确定-取消”按钮的对话框 MessageDialog.fxml:此fxml创建对话框的 MessageDialogController将文件关联到MessageDialog.fxml JavaFXSample.java是运行此示例的主类

Dialog.java

package javafxsample;

import java.io.IOException;
import java.io.InputStream;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author Admin
 */
public class Dialog {

    public static void ShowinfoDialog(String title, String Message, Stage parentStage, double w, double h) {
        if (title == null || title.trim().isEmpty()) {
            title = "Info";
        }
        showMessageDialog(title, Message, parentStage, "sidetheme.png", w, h);
    }

    public static void showMessageDialog(String title, String Message, Stage parentStage, String image, double w, double h) {
        Stage stage = new Stage();
        MessageDialogController messageDialogController = (MessageDialogController) replaceScene("/javafxsample/MessageDialog.fxml", stage);
        messageDialogController.init(stage, Message, image);
        if (parentStage != null) {
            stage.initOwner(parentStage);
        }
        stage.initModality(Modality.APPLICATION_MODAL);
        stage.initStyle(StageStyle.UTILITY);
        stage.setResizable(false);
        if (title != null && !title.trim().isEmpty()) {
            stage.setTitle(title);
        }
        stage.setWidth(w);
        stage.setHeight(h);
//        Utility.setCentreLocation(stage, parentStage);
        InputStream inputStream = null;
        try {
            inputStream = Dialog.class.getResourceAsStream(image);
            stage.getIcons().add(new Image(inputStream));
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException ex) {
                }
            }
        }
        stage.showAndWait();
    }

    public static Initializable replaceScene(String fXml, Stage mystage) {
        InputStream in = null;
        try {
            FXMLLoader loader = new FXMLLoader();
            in = Dialog.class.getResourceAsStream(fXml);
            loader.setLocation(Dialog.class.getResource(fXml));
            loader.setBuilderFactory(new JavaFXBuilderFactory());
            AnchorPane page;
            try {
                page = (AnchorPane) loader.load(in);
            } finally {
                in.close();
            }
            Scene scene = new Scene(page);
            mystage.setScene(scene);
            return loader.getController();
        } catch (Exception ex) {
            System.out.println("Exception in replaceScene. " + fXml + ".Error:" + ex.getMessage());
            return null;
        }
    }
}
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package javafxsample;

    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;

    /**
     *
     * @author JavaUser1
     */
    public class JavaFXSample extends Application {

        @Override
        public void start(final Stage primaryStage) {
            Button btn = new Button();
            btn.setText("   Click on ME  ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    Dialog.ShowinfoDialog("Sample", "Clicked on button", primaryStage, 400.0, 150.0);
                }
            });

            StackPane root = new StackPane();
            root.getChildren().add(btn);

            Scene scene = new Scene(root, 300, 250);

            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        }

        /**
         * The main() method is ignored in correctly deployed JavaFX application.
         * main() serves only as fallback in case the application can not be
         * launched through deployment artifacts, e.g., in IDEs with limited FX
         * support. NetBeans ignores main().
         *
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
    }
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javafxsample;

import java.io.InputStream;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 * FXML Controller class
 *
 * @author Admin
 */
public class MessageDialogController implements Initializable {

    @FXML
    private Label lblMessage;
    @FXML
    private Label lblicon;
    @FXML
    private HBox hBox;
    private Stage myStage;
    private String clicked = "cancel";

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }

    public void btnOkEvent(ActionEvent event) {
        clicked = "yes";
        myStage.close();
    }

    public void btnCancelEvent(ActionEvent event) {
        clicked = "no";
        myStage.close();
    }

    public void init(Stage stage, String Message, String image) {
        Button btnOk = new Button("OK");
        btnOk.setPrefSize(70.0, 23.0);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        hBox.getChildren().add(btnOk);
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public void init(Stage stage, String Message, String btnOkText, String btnCancelText, String image) {
        clicked = "cancel";
        Button btnOk = new Button(btnOkText);
        btnOk.setPrefHeight(23);
        Button btnCancel = new Button(btnCancelText);
        btnCancel.setPrefHeight(23);
        hBox.getChildren().addAll(btnOk, btnCancel);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        btnCancel.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnCancelEvent(t);
            }
        });
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            InputStream inputStream = null;
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public String clickedOn() {
        return clicked;
    }
}
JavaFXSample.java

package javafxsample;

import java.io.IOException;
import java.io.InputStream;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author Admin
 */
public class Dialog {

    public static void ShowinfoDialog(String title, String Message, Stage parentStage, double w, double h) {
        if (title == null || title.trim().isEmpty()) {
            title = "Info";
        }
        showMessageDialog(title, Message, parentStage, "sidetheme.png", w, h);
    }

    public static void showMessageDialog(String title, String Message, Stage parentStage, String image, double w, double h) {
        Stage stage = new Stage();
        MessageDialogController messageDialogController = (MessageDialogController) replaceScene("/javafxsample/MessageDialog.fxml", stage);
        messageDialogController.init(stage, Message, image);
        if (parentStage != null) {
            stage.initOwner(parentStage);
        }
        stage.initModality(Modality.APPLICATION_MODAL);
        stage.initStyle(StageStyle.UTILITY);
        stage.setResizable(false);
        if (title != null && !title.trim().isEmpty()) {
            stage.setTitle(title);
        }
        stage.setWidth(w);
        stage.setHeight(h);
//        Utility.setCentreLocation(stage, parentStage);
        InputStream inputStream = null;
        try {
            inputStream = Dialog.class.getResourceAsStream(image);
            stage.getIcons().add(new Image(inputStream));
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException ex) {
                }
            }
        }
        stage.showAndWait();
    }

    public static Initializable replaceScene(String fXml, Stage mystage) {
        InputStream in = null;
        try {
            FXMLLoader loader = new FXMLLoader();
            in = Dialog.class.getResourceAsStream(fXml);
            loader.setLocation(Dialog.class.getResource(fXml));
            loader.setBuilderFactory(new JavaFXBuilderFactory());
            AnchorPane page;
            try {
                page = (AnchorPane) loader.load(in);
            } finally {
                in.close();
            }
            Scene scene = new Scene(page);
            mystage.setScene(scene);
            return loader.getController();
        } catch (Exception ex) {
            System.out.println("Exception in replaceScene. " + fXml + ".Error:" + ex.getMessage());
            return null;
        }
    }
}
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package javafxsample;

    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;

    /**
     *
     * @author JavaUser1
     */
    public class JavaFXSample extends Application {

        @Override
        public void start(final Stage primaryStage) {
            Button btn = new Button();
            btn.setText("   Click on ME  ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    Dialog.ShowinfoDialog("Sample", "Clicked on button", primaryStage, 400.0, 150.0);
                }
            });

            StackPane root = new StackPane();
            root.getChildren().add(btn);

            Scene scene = new Scene(root, 300, 250);

            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        }

        /**
         * The main() method is ignored in correctly deployed JavaFX application.
         * main() serves only as fallback in case the application can not be
         * launched through deployment artifacts, e.g., in IDEs with limited FX
         * support. NetBeans ignores main().
         *
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
    }
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javafxsample;

import java.io.InputStream;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 * FXML Controller class
 *
 * @author Admin
 */
public class MessageDialogController implements Initializable {

    @FXML
    private Label lblMessage;
    @FXML
    private Label lblicon;
    @FXML
    private HBox hBox;
    private Stage myStage;
    private String clicked = "cancel";

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }

    public void btnOkEvent(ActionEvent event) {
        clicked = "yes";
        myStage.close();
    }

    public void btnCancelEvent(ActionEvent event) {
        clicked = "no";
        myStage.close();
    }

    public void init(Stage stage, String Message, String image) {
        Button btnOk = new Button("OK");
        btnOk.setPrefSize(70.0, 23.0);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        hBox.getChildren().add(btnOk);
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public void init(Stage stage, String Message, String btnOkText, String btnCancelText, String image) {
        clicked = "cancel";
        Button btnOk = new Button(btnOkText);
        btnOk.setPrefHeight(23);
        Button btnCancel = new Button(btnCancelText);
        btnCancel.setPrefHeight(23);
        hBox.getChildren().addAll(btnOk, btnCancel);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        btnCancel.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnCancelEvent(t);
            }
        });
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            InputStream inputStream = null;
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public String clickedOn() {
        return clicked;
    }
}
/*
*要更改此模板,请选择工具|模板
*然后在编辑器中打开模板。
*/
包装样品;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
/**
*
*@author JavaUser1
*/
公共类JavaFXSample扩展应用程序{
@凌驾
公共作废开始(最终阶段初级阶段){
按钮btn=新按钮();
btn.setText(“点击我”);
btn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
ShowinfoDialog(“示例”,“点击按钮”,primaryStage,400.0,150.0);
}
});
StackPane root=新的StackPane();
root.getChildren().add(btn);
场景=新场景(根,300,250);
setTitle(“你好,世界!”);
初级阶段。场景(场景);
primaryStage.show();
}
/**
*在正确部署的JavaFX应用程序中忽略main()方法。
*main()仅在应用程序无法运行时用作回退
*通过部署工件启动,例如在具有有限FX的IDE中
*support.NetBeans忽略main()。
*
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
发射(args);
}
}
MessageDialog.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<AnchorPane id="AnchorPane" prefHeight="138.0" prefWidth="306.0" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxsample.MessageDialogController">
  <children>
    <TitledPane animated="false" collapsible="false" prefHeight="138.0" prefWidth="347.0" text="" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="-40.0">
      <content>
        <AnchorPane id="Content" minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
          <children>
            <GridPane prefHeight="112.0" prefWidth="282.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
              <children>
                <Label fx:id="lblicon" text="" GridPane.columnIndex="0" GridPane.halignment="CENTER" GridPane.rowIndex="0">
                  <GridPane.margin>
                    <Insets top="20.0" fx:id="x1" />
                  </GridPane.margin>
                </Label>
                <Label fx:id="lblMessage" text="" wrapText="true" GridPane.columnIndex="1" GridPane.rowIndex="0">
                  <font>
                    <Font size="14.0" />
                  </font>
                  <GridPane.margin>
                    <Insets left="2.0" top="20.0" />
                  </GridPane.margin>
                </Label>
                <Separator prefWidth="200.0" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.rowIndex="1" />
                <Separator prefWidth="200.0" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.rowIndex="1">
                  <GridPane.margin>
                    <Insets top="4.0" />
                  </GridPane.margin>
                </Separator>
                <HBox id="HBox" fx:id="hBox" alignment="CENTER" spacing="5.0" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.halignment="CENTER" GridPane.rowIndex="2" />
              </children>
              <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" maxWidth="82.0" minWidth="82.0" prefWidth="82.0" />
                <ColumnConstraints hgrow="SOMETIMES" maxWidth="-1.0" minWidth="10.0" prefWidth="220.0" />
              </columnConstraints>
              <rowConstraints>
                <RowConstraints maxHeight="-1.0" minHeight="10.0" prefHeight="68.0" vgrow="SOMETIMES" />
                <RowConstraints maxHeight="15.0" minHeight="15.0" prefHeight="15.0" vgrow="SOMETIMES" />
                <RowConstraints maxHeight="29.0" minHeight="29.0" prefHeight="29.0" vgrow="SOMETIMES" />
              </rowConstraints>
            </GridPane>
          </children>
        </AnchorPane>
      </content>
    </TitledPane>
  </children>
</AnchorPane>

MessageDialogController.java

package javafxsample;

import java.io.IOException;
import java.io.InputStream;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 *
 * @author Admin
 */
public class Dialog {

    public static void ShowinfoDialog(String title, String Message, Stage parentStage, double w, double h) {
        if (title == null || title.trim().isEmpty()) {
            title = "Info";
        }
        showMessageDialog(title, Message, parentStage, "sidetheme.png", w, h);
    }

    public static void showMessageDialog(String title, String Message, Stage parentStage, String image, double w, double h) {
        Stage stage = new Stage();
        MessageDialogController messageDialogController = (MessageDialogController) replaceScene("/javafxsample/MessageDialog.fxml", stage);
        messageDialogController.init(stage, Message, image);
        if (parentStage != null) {
            stage.initOwner(parentStage);
        }
        stage.initModality(Modality.APPLICATION_MODAL);
        stage.initStyle(StageStyle.UTILITY);
        stage.setResizable(false);
        if (title != null && !title.trim().isEmpty()) {
            stage.setTitle(title);
        }
        stage.setWidth(w);
        stage.setHeight(h);
//        Utility.setCentreLocation(stage, parentStage);
        InputStream inputStream = null;
        try {
            inputStream = Dialog.class.getResourceAsStream(image);
            stage.getIcons().add(new Image(inputStream));
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException ex) {
                }
            }
        }
        stage.showAndWait();
    }

    public static Initializable replaceScene(String fXml, Stage mystage) {
        InputStream in = null;
        try {
            FXMLLoader loader = new FXMLLoader();
            in = Dialog.class.getResourceAsStream(fXml);
            loader.setLocation(Dialog.class.getResource(fXml));
            loader.setBuilderFactory(new JavaFXBuilderFactory());
            AnchorPane page;
            try {
                page = (AnchorPane) loader.load(in);
            } finally {
                in.close();
            }
            Scene scene = new Scene(page);
            mystage.setScene(scene);
            return loader.getController();
        } catch (Exception ex) {
            System.out.println("Exception in replaceScene. " + fXml + ".Error:" + ex.getMessage());
            return null;
        }
    }
}
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package javafxsample;

    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;

    /**
     *
     * @author JavaUser1
     */
    public class JavaFXSample extends Application {

        @Override
        public void start(final Stage primaryStage) {
            Button btn = new Button();
            btn.setText("   Click on ME  ");
            btn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    Dialog.ShowinfoDialog("Sample", "Clicked on button", primaryStage, 400.0, 150.0);
                }
            });

            StackPane root = new StackPane();
            root.getChildren().add(btn);

            Scene scene = new Scene(root, 300, 250);

            primaryStage.setTitle("Hello World!");
            primaryStage.setScene(scene);
            primaryStage.show();
        }

        /**
         * The main() method is ignored in correctly deployed JavaFX application.
         * main() serves only as fallback in case the application can not be
         * launched through deployment artifacts, e.g., in IDEs with limited FX
         * support. NetBeans ignores main().
         *
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
    }
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package javafxsample;

import java.io.InputStream;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 * FXML Controller class
 *
 * @author Admin
 */
public class MessageDialogController implements Initializable {

    @FXML
    private Label lblMessage;
    @FXML
    private Label lblicon;
    @FXML
    private HBox hBox;
    private Stage myStage;
    private String clicked = "cancel";

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }

    public void btnOkEvent(ActionEvent event) {
        clicked = "yes";
        myStage.close();
    }

    public void btnCancelEvent(ActionEvent event) {
        clicked = "no";
        myStage.close();
    }

    public void init(Stage stage, String Message, String image) {
        Button btnOk = new Button("OK");
        btnOk.setPrefSize(70.0, 23.0);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        hBox.getChildren().add(btnOk);
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public void init(Stage stage, String Message, String btnOkText, String btnCancelText, String image) {
        clicked = "cancel";
        Button btnOk = new Button(btnOkText);
        btnOk.setPrefHeight(23);
        Button btnCancel = new Button(btnCancelText);
        btnCancel.setPrefHeight(23);
        hBox.getChildren().addAll(btnOk, btnCancel);
        btnOk.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnOkEvent(t);
            }
        });
        btnCancel.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent t) {
                btnCancelEvent(t);
            }
        });
        lblMessage.setText(Message);
        if (image != null && !image.trim().isEmpty()) {
            InputStream inputStream = null;
            Image imageRunBackupPlan = new Image(getClass().getResourceAsStream(image));
            lblicon.setGraphic(new ImageView(imageRunBackupPlan));
        }
        this.myStage = stage;
    }

    public String clickedOn() {
        return clicked;
    }
}
/*
*要更改此模板,请选择工具|模板
*然后在编辑器中打开模板。
*/
包装样品;
导入java.io.InputStream;
导入java.net.URL;
导入java.util.ResourceBundle;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.fxml.fxml;
导入javafx.fxml.Initializable;
导入javafx.scene.control.Button;
导入javafx.scene.control.Label;
导入javafx.scene.image.image;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.HBox;
导入javafx.stage.stage;
/**
*FXML控制器类
*
*@author-Admin
*/
公共类MessageDialogController实现可初始化{
@FXML
自有品牌LBL信息;
@FXML
自有品牌lblicon;
@FXML
私人HBox;
私人舞台;
私有字符串单击=“取消”;
/**
*初始化控制器类。
*/
@凌驾
公共void初始化(URL、ResourceBundle rb){
//待办事项
}
公共无效btnOkEvent(ActionEvent事件){
单击“是”;
myStage.close();
}
公共无效btnCancelEvent(ActionEvent事件){
单击“否”;
myStage.close();
}
public void init(Stage、字符串消息、字符串图像){
按钮btnOk=新按钮(“确定”);
btnOk.setPrefSize(70.0,23.0);
setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
btnOkEvent(t);
}
});
hBox.getChildren().add(btnOk);
lblMessage.setText(消息);
if(image!=null&&!image.trim().isEmpty()){
Image imageRunBackupPlan=新图像(getClass().getResourceAsStream(Image));
lblicon.setGraphic(新的ImageView(imageRunBackupPlan));
}
this.myStage=舞台;
}
public void init(Stage Stage、字符串消息、字符串btnOkText、字符串btnCancelText、字符串图像){
单击“取消”;
按钮btnOk=新按钮(btnOkText);
btnOk.setPrefHeight(23);
按钮btnCancel=新按钮(btnCancelText);
btnCancel.setPrefHeight(23);
hBox.getChildren().addAll(btnOk,btnCancel);
setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
btnOkEvent(t);
}
});
btnCancel.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
btn浓度(t);
}
});
lblMessage.setText(消息);
if(image!=null&&!image.trim()。