java - ControlsFX 的 RangeSlider 存在问题

标签 java javafx controlsfx rangeslider

我正在尝试在程序中实现 RangeSlider 类,但是,我收到以下错误:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalAccessError: class impl.org.controlsfx.behavior.RangeSliderBehavior (in unnamed module @0x74bf073e) cannot access class com.sun.javafx.scene.control.inputmap.InputMap$Mapping (in module javafx.controls) because module javafx.controls does not export com.sun.javafx.scene.control.inputmap to unnamed module @0x74bf073e
    at impl.org.controlsfx.behavior.RangeSliderBehavior.<init>(RangeSliderBehavior.java:67)
    at impl.org.controlsfx.skin.RangeSliderSkin.<init>(RangeSliderSkin.java:95)
    at org.controlsfx.control.RangeSlider.createDefaultSkin(RangeSlider.java:194)
    at javafx.controls/javafx.scene.control.Control.doProcessCSS(Unknown Source)
    at javafx.controls/javafx.scene.control.Control.access$000(Unknown Source)
    at javafx.controls/javafx.scene.control.Control$1.doProcessCSS(Unknown Source)
    at javafx.controls/com.sun.javafx.scene.control.ControlHelper.processCSSImpl(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.access$400(Unknown Source)
    at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.access$400(Unknown Source)
    at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.doProcessCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Parent.access$400(Unknown Source)
    at javafx.graphics/javafx.scene.Parent$1.doProcessCSS(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.ParentHelper.processCSSImpl(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.NodeHelper.processCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Node.processCSS(Unknown Source)
    at javafx.graphics/javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.graphics/javafx.scene.Scene.preferredSize(Unknown Source)
    at javafx.graphics/javafx.scene.Scene$2.preferredSize(Unknown Source)
    at javafx.graphics/com.sun.javafx.scene.SceneHelper.preferredSize(Unknown Source)
    at javafx.graphics/javafx.stage.Window$12.invalidated(Unknown Source)
    at javafx.base/javafx.beans.property.BooleanPropertyBase.markInvalid(Unknown Source)
    at javafx.base/javafx.beans.property.BooleanPropertyBase.set(Unknown Source)
    at javafx.graphics/javafx.stage.Window.setShowing(Unknown Source)
    at javafx.graphics/javafx.stage.Window.show(Unknown Source)
    at javafx.graphics/javafx.stage.Stage.show(Unknown Source)
    at minimalist.DoubleSliderInterface.start(DoubleSliderInterface.java:104)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
    ... 1 more
Exception running application minimalist.DoubleSliderInterface

我在 Eclipse 上运行 Java 10 时使用 ControlsFX 版本 9.0.0,但是,我相信我可以排除与 Java 版本不兼容的可能性,因为我也尝试在 Java 9.0.4 上运行它并且也能够成功运行评级类别。

我的代码只是以下内容的多个实例,后跟一个 VBox 来包含它们、一个组以及正常的场景和舞台 -

        final RangeSlider blur = new RangeSlider(0,30,0,30);
        Text blurTitle = new Text("Blur");
        Text blurMin = new Text();
        blurMin.textProperty().bindBidirectional(blur.lowValueProperty(),converter);
        Text blurMax = new Text();
        blurMax.textProperty().bindBidirectional(blur.highValueProperty(),converter);
        HBox blurBox = new HBox();
        blurBox.getChildren().addAll(blurMin,blur,blurMax);
        blurBox.setPadding(new Insets(5));
        blurBox.setSpacing(10);

感谢任何帮助,谢谢。

最佳答案

在运行应用程序时将 --add-exports=javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED 添加到您的 VM 参数将解决该问题。感谢@kleopatra 的回答

关于java - ControlsFX 的 RangeSlider 存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51708581/

相关文章:

java - 是否可以在 JUnit 4 中排除多个类别?

java - 罗马数字和正则表达式

具有透明背景的 JavaFX 按钮

JavaFX 自定义对话框未居中

java - ControlsFX:确保 PopOver 箭头始终指向正确的位置

java - 预期分号?

java - 如何使用FX查看网页:ID JavaFx

从 jar 运行时无法加载 javafx 资源

java - 如何判断 CheckComboBox 中选择了多少项?

java - 用于 Java/Spring 配置的 ZooKeeper?