Как я могу сказать диалоговому окну в javaFX, чтобы не закрывать окно, когда я нажимаю кнопку - PullRequest
0 голосов
/ 08 мая 2020

В настоящее время я новичок в проекте javaFX. Это мое первое использование диалогового окна в классе javaFX. Когда я нажимаю кнопку «Применить», я хотел бы получить информацию в полях, которые я ввел, но не закрывая окно. В настоящее время, как только я нажимаю кнопку, окно закрывается. Вы знаете, как мне поступить? Заранее благодарю

    //Init
    this.dialog = new Dialog();
    dialog.setTitle("Edit Propriété");
    dialog.setHeaderText("Veuillez entrer les valeurs que vous désirez");
    ButtonType buttonOk = new ButtonType("Ok",ButtonData.OK_DONE);
    ButtonType buttonCancel = new ButtonType("Cancel", ButtonData.CANCEL_CLOSE);
    ButtonType buttonApply = new ButtonType("Apply", ButtonData.APPLY);
    dialog.getDialogPane().getButtonTypes().addAll(buttonOk,buttonCancel,buttonApply);

    //UI
    final GridPane gridPane = new GridPane();
    gridPane.setHgap(6); 
    gridPane.setVgap(6); 
    gridPane.setPadding(new Insets(6)); 
    TextField size  = new TextField(); 
    ColorPicker colorPicker = new ColorPicker();
    TextField rotate = new TextField();
    size.setText(null); 
    rotate.setText(null);
    gridPane.add(new Label("Size :"), 0, 0);
    gridPane.add(size, 1, 0); 
    gridPane.add(new Label("Color :"), 0, 1);   
    gridPane.add(colorPicker, 1, 1); 
    gridPane.add(new Label("Rotate :"), 0, 2); 
    gridPane.add(rotate, 1, 2); 

    dialog.getDialogPane().setContent(gridPane);
    dialog.setResultConverter(dialogButton -> { 
        if (dialogButton == buttonApply) {
            ArrayList<String> result = new ArrayList<String>();
            result.add(size.getText());
            result.add(colorPicker.getValue().toString());
            result.add(rotate.getText());
            return result;
        }
        if(dialogButton == buttonCancel) {
            return new ArrayList<String>();
        }
        return null;
    });

Я пробую это с помощью документации, но всегда на моей кнопке pointerNull:

        //Création de la boite de dialogue
    this.dialog = new Dialog();
    dialog.setTitle("Edition des propriétés");
    dialog.setHeaderText("Veuillez entrer les valeurs que vous désirez");
    ButtonType buttonOk = new ButtonType("Ok",ButtonData.OK_DONE);
    ButtonType buttonCancel = new ButtonType("Annuler", ButtonData.CANCEL_CLOSE);
    ButtonType buttonApply = new ButtonType("Appliquer", ButtonData.APPLY);
    dialog.getDialogPane().getButtonTypes().addAll(buttonOk,buttonCancel,buttonApply);

    final Button btApply = (Button) dialog.getDialogPane().lookupButton(ButtonType.APPLY);
    btApply.addEventFilter(ActionEvent.ACTION, event -> {
        event.consume();
     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...