1

私はシンセスタイルを試していますが、かなりの調査の後、まだ答えが見つからない次の問題に遭遇しました。次のxmlファイルがあります

<?xml version="1.0" encoding="UTF-8"?>
<synth>
    <style id="button">
        <state>
            <color value="blue" type="BACKGROUND"/>
            <color value="yellow" type="FOREGROUND"/>
        </state>
    </style>
    <bind style="button" type="region" key="Button"/>
</synth>

およびその xml ファイルを SynthLookAndFeel オブジェクトとしてロードする次の Java コード

private void initializeStyle() {
    SynthLookAndFeel laf = new SynthLookAndFeel();
    try {
        laf.load(this.getClass().getResourceAsStream("Style.xml"), this.getClass());
        UIManager.setLookAndFeel(laf);
    } catch (ParseException | UnsupportedLookAndFeelException e) {
        e.printStackTrace();
    }
}

このコードを実行しようとすると、次の例外が発生します

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: You must supply an InputStream, StyleFactory and Class or URL

これを修正する方法についての提案は大歓迎です。

4

2 に答える 2

2

Advanced Synthで良い例を見つけることができます。

この例では、次のことがわかります。

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

そして、この XML にはいくつかの画像が含まれているクラスdemo.xmldemo.synth同じパッケージに含まれています。SynthFrame

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

パッケージcheckbox_off.pngに住んでいる場所。demo.synth.images

これがお役に立てば幸いです。

于 2012-11-26T21:53:29.630 に答える
0

主なカルス:

SynthLookAndFeel lookAndFeel = new SynthLookAndFeel(); lookAndFeel.load(TestRApp.class.getResourceAsStream(synthFile), TestRApp.class); UIManager.setLookAndFeel(lookAndFeel);

syn.xml ファイル

<style id="panelStyle">
    <imagePainter method="panelBackground" path="images/main-bg.png" sourceInsets="0 0 0 0" stretch="true"/>
</style>
<bind style="panelStyle" type="region" key="Panel"/>

于 2013-02-26T14:33:57.793 に答える