当前位置: 首页 > 知识库问答 >
问题:

尝试创建按钮时引发的JavaFX InvocationTargetException

伏星汉
2023-03-14

我一直在经历一些怪异的行为。我正在尝试编写一个简单的GUI来帮助我与我的大学项目进行交互,所以我没有使用FXML。到目前为止,JavaFX的一切工作都很好--我可以创建场景、画布等,但当我试图创建一个按钮时,它会抛出一个错误。即使这是我唯一想做的事情,即:

public class SnakePlayback extends Application {

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) {
    Button button = new Button("text");
}
}

这是我得到的错误:

应用程序启动方法java.lang.Reflect.InvocationTargetException位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.Invoke0(原生方法)位于java.base/jdk.internal.reflect.NativeMethodAccessorImpl.Invoke(nativeMethodAccessorImpl.java:62)位于a.base/sun.launcher.launcherHelper$FXHelper.Main(launcherHelper.java:1051)原因:java.lang.RuntimeException:javafx.graphics/com.sun.javafx.Application.launcherImpl.launchApplication1(launcherImpl.java:900)原因:javafx.graphics/com.sun.javafx.Application.launcherImpl.lambda$launchApplication$2(launcherImpl.java:195)原因:al.loader.BuiltInclassLoader.DefineClass(BuiltInclassLoader.java:802)位于java.base/jdk.internal.loader.BuiltInclassLoader.findClassonClasspathorNull(BuiltInclassLoader.java:700)位于java.base/jdk.internal.loader.BuiltInclassLoader.LoadClassorNull(BuiltInclassLoader.java:623)位于方法)在javafx.graphics/com.sun.javafx.application.platformimpl.lambda$runlater$11(Platformimpl.java:427)在javafx.graphics/com.sun.glass.ui.invokelaterdispatcher$future.run(invokelaterdispatcher.java:96)在javafx.graphics/com.sun.glass.ui.win.winapplication._runloop(本机方法)在

我从中可以看出,这可能是一个与反射有关的错误。这已经不是我第一次在尝试创建按钮时看到这个了!上次抛出异常所需要的只是声明一个按钮,即:

Button button;

然而,这一次,我真的需要使用按钮。

共有1个答案

成浩漫
2023-03-14

这是因为您使用的controlsfx(包含Button类)需要一个名为graphics的模块

....(in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module

如果使用Java11,则需要将图形模块添加到VM选项中。

如果您使用的是Java12,则需要删除VM选项才能使其正常工作。

查看本文在IntelliJ上设置JavaFx

 类似资料:
  • 我正试图从智能支付按钮订阅贝宝计费计划。但是我不断地得到错误“指定的资源不存在”。 订阅Api响应错误: {“名称”:“resource_not_found”,“消息”:“指定的资源不存在”,“debug_id”:“82ac38ce75745”,“详细信息”:[{“问题”:“invalid_resource_id”,“说明”:“未找到请求的资源ID。”}],“链接”:[{“href”:“https

  • 从这段代码中,当单击“button1”时,它应该创建一个新按钮“btn”,当单击“btn”时,它应该转到其click函数中的url(即btn_Click())。但是当我单击“button1”时,它不执行“button1_click()”,而是执行“btn_click()”。我该怎么办??

  • 当我尝试创建一个新的OkHttpClient对象时,会引发一个异常 我使用的是OkHttp 3.11.0和OkIO 2.0.0-RC1。

  • 本文向大家介绍javafx 创建一个按钮,包括了javafx 创建一个按钮的使用技巧和注意事项,需要的朋友参考一下 示例 创建aButton很简单: 这将创建一个新的Button,内部没有任何文本或图形。 如果要Button使用文本创建一个,只需使用带有Stringas参数的构造函数(用于设置textProperty的Button): 如果您想创建一个Button内部带有图形或其他图形的Node,

  • 问题内容: 我正在尝试分解通过网站上的API获得的数组,Java已将其检索为。 引发A。由于某种原因,它确实不喜欢。我尝试将其转义为,但它表示这是非法的转义。 转义此字符串的正确方法是什么? 问题答案: 由于某种原因,它确实不喜欢},{。 这是因为大括号(和)是Java正则表达式中的特殊字符。如果您尝试不加转义地直接使用它们,则将其视为语法错误,因此是您的例外。 转义此字符串的正确方法是什么? 通

  • 我是android的新手,所以我希望我听起来不会太笨,也就是说,我做了一个片段,专门为XML中的按钮实现了OnclickListener。我需要默认的onclick函数来将按钮的文本保存为字符串,但是我还没有弄清楚如何从视图中检索按钮的文本。这将帮助我为我要做的每一个按钮做一个if语句。有什么建议吗?