gpt4 book ai didi

java - 如何从 Java 9 中的另一个模块添加到 JavaFX Scene 样式表?

转载 作者:搜寻专家 更新时间:2023-11-01 03:32:26 25 4
gpt4 key购买 nike

我有两个 JPMS 模块:

  • 模块a
  • 模块b

在模块-a 中我有类似的东西:

public class MyAppplication extends Application {
....
public static void addCss(String path) {
stage.getScene().getStylesheets().add(path);
}
}

在模块 b 中,我有 CSS 文件,我想将其添加到 MyApplication。如何在 module-b 的代码中做到这一点?我不明白如何从另一个模块传递路径。

我的意思是在模块 b 中:

...
MyApplication.addCss(???);
...

编辑
在 OSGi 中,我在 bundle-b 中使用了以下解决方案(假设 module-a 是 bundle-a,module-b 是 bundle-b):

String pathInBundleB = "com/foo/package-in-bundle-b/file.css"
Bundle bundleB = FrameworkUtil.getBundle(this.getClass()).getBundleContext().getBundle();
URL cssFileUrl = bundleB.getEntry(pathInBundleB);
MyApplication.addCss(cssFileUrl.toString());

最佳答案

我在@AlanBateman 的帮助下找到了解决方案。

假设 css 文件位于 com/foo/some-package/file.css 我在 module-b 中使用以下代码:

package com.foo.some-package;

public class SomeClass {

public void init() {
MyApplication.addCss(this.getClass().getResource("base.css").toString());
}
}

此外,在 module-b 的 module-info 中我有:

opens com.foo.some-package to module-a;

关于java - 如何从 Java 9 中的另一个模块添加到 JavaFX Scene 样式表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46371328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com