为什么我会收到“由于缺少‘需要传递’,客户端可能无法访问模块 javafx.graphics 中的 GraphicsContext 类型”警告?

Luc*_*cas 2 java eclipse javafx maven

每当我在 JavaFX 应用程序中创建 GraphicsContext 对象时,它都会创建一个错误,内容如下:

由于缺少“需要传递”,客户端可能无法访问模块 javafx.graphics 中的 GraphicsContext 类型

这是导致警告/错误的代码的一个小示例:

import javafx.scene.canvas.GraphicsContext;

    public Factory(GraphicsContext gc) {
        super();
        this.gc = gc;
    }
Run Code Online (Sandbox Code Playgroud)

GraphicsContext 以警告颜色加下划线,并且有 Eclipse 建议的 3 个快速修复。其中 2 个包括添加 @SuppressWarnings ,它根本不能解决问题,而另一个“配置问题服务器性”我认为只是告诉 eclipse 不要担心这个问题。

该代码在 Eclipse 中运行时工作正常,但当我导出为可运行的 JAR 文件时,该文件会立即关闭。我希望客户端可以访问这些类,因为 GraphicsContexts 对我的应用程序来说很重要。

当我使用 JavaFX 类阶段时,我也遇到同样的错误。

由于缺少“需要传递”,客户端可能无法访问模块 javafx.graphics 中的 Stage 类型

我正在使用 eclipse 和 jdk-16

在我的程序中如何/何处包含“需要传递”?或者这个警告隐藏了不同的问题?

Phi*_*ner 7

如果您设置为模块化项目,则/srcmodule-info.java文件夹中应该直接有一个文件。

以下是来自openjfx.io 入门文档的 module-info.java 文件内容的示例: 在此输入图像描述

正如您所看到的,“transitive”一词已添加到 javafx.graphics 的行中。