首页 > 解决方案 > 为什么我会收到“由于缺少'需要传递'而导致客户端无法访问模块 javafx.graphics 的类型 GraphicsContext”警告?

问题描述

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

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

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

import javafx.scene.canvas.GraphicsContext;

    public Factory(GraphicsContext gc) {
        super();
        this.gc = gc;
    }

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

此代码在 eclipse 中运行时运行良好,但是当我导出为可运行的 JAR 文件时,该文件立即关闭。我希望客户可以访问这些类,因为 GraphicsContexts 对我的应用程序来说很有趣。

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

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

我正在使用 eclipse 和 jdk-16

在我的程序中如何/在哪里包含“需要传递”?还是此警告隐藏了其他问题?

标签: javaeclipsemavenjavafx

解决方案


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

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

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


推荐阅读