Original report by Andreas Liebelt (Bitbucket: aliebelt, GitHub: aliebelt).
As soon as a Validator validates a control and determined an erroneous value, the Stage transparency is gone and will never be restored:
#!java
import javafx.application.Application;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import org.controlsfx.dialog.Dialog;
import org.controlsfx.validation.ValidationSupport;
import org.controlsfx.validation.Validator;
public class ValidationStageDecorationErrorRunTest extends Application {
public void start(Stage primaryStage) throws Exception {
Dialog dialogWithoutValidation = new Dialog(primaryStage, "dialogWithoutValidation");
dialogWithoutValidation.setContent(new TextField());
dialogWithoutValidation.show();
Dialog dialogWithValidation = new Dialog(primaryStage, "dialogWithValidation");
TextField textField = new TextField();
new ValidationSupport().registerValidator(textField, false, Validator.createEmptyValidator("message"));
dialogWithValidation.setContent(textField);
dialogWithValidation.show();
}
public static void main(String[] args) {
launch(args);
}
}
该提问来源于开源项目:controlsfx/controlsfx