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

问题描述 投票:0回答:2

每当我在 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

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

java eclipse maven javafx
2个回答
7
投票

如果您设置为模块化项目,则您的

/src
文件夹中应该直接有一个 module-info.java 文件。

以下是 module-info.java 文件内容的示例,来自 openjfx.io 入门文档

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


0
投票

@Phil Freihofner:谢谢您的评论,帮助我解决我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.