java - 如何将 SynthLookAndFeel 与 xml 文件一起使用,其中 xml 文件路径将使用 getResourceAsStream 方法加载文件?

标签 java swing jslider synth

我正在使用

SynthLookAndFeel laf = new SynthLookAndFeel();
laf.load(MyJSlider.class.getResourceAsStream("/ui/demo.xml"), MyJSlider.class);      
//laf.load(new URL("file:///var/tmp/demo.xml"));

我的 demo.xml 有以下内容:

<style id="SliderTrackStyle">
    <opaque value="TRUE"/>
    <state>
      <imagePainter method="SliderTrackBackground" path="/var/tmp/JavaUnitTest/src/image/menu/bg.jpg" sourceInsets="0 0 0 0" />
    </state>
</style>
<bind style="SliderTrackStyle" type="region" key="SliderTrack" />

导致错误:

run-single:
Uncaught error fetching image:
java.lang.NullPointerException
    at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:115)
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:125)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)
BUILD STOPPED (total time: 9 seconds)

避免并减少风险。

如何像 path=Menu.class.getResourceAsStream("/image/menu/bg.jpg") 一样使用它,我想避免使用示例中显示的静态路径。

跟进:

enter image description here

最佳答案

您可以在Advanced Synth中找到一个很好的例子.

您可以在示例中看到:

SynthLookAndFeel synth = new SynthLookAndFeel();
synth.load(SynthFrame.class.getResourceAsStream("demo.xml"), SynthFrame.class);
UIManager.setLookAndFeel(synth);

并且 demo.xml 位于 demo.synth 包中,与 SynthFrame 类相同,其中此 XML 包含:

<imageIcon id="check_off" path="images/checkbox_off.png"/>

checkbox_off.png 位于 demo.synth.images 包中。

关于java - 如何将 SynthLookAndFeel 与 xml 文件一起使用,其中 xml 文件路径将使用 getResourceAsStream 方法加载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11564597/

相关文章:

java - 具有最大组合值的链接 JSlider

java - 如何使用 Java 中的 Aspose lib 将 Office 文件转换为 pdf

java - com.google.api.client.auth.oauth2.TokenResponseException : 401 Unauthorized

java - 当我尝试将 ImageIcon 放入 Java 中时出错

Java Slider - 如何制作自定义刻度?

java - JSliderchangeListener不会更新 - Java

java - 如何在使用camera2 api预览之前缓冲和延迟视频几秒钟

java - 使用 java 的 HL7 版本 2.7 解析器(Hapi 除外)

java - JPanel 不会重新绘制

java - 如何让 JFrame 中的 JPanel 填满整个窗口?