我有一個JLabel定義的風格:擺動合成皮膚:你可以重寫樣式?
<style id="myLabel">
<state>
<opaque value="true"/>
<color value="blue" type="BACKGROUND"/>
<color value="red" type="FOREGROUND"/>
</state>
</style>
<bind style="myLabel" type="region" key="label"/>
不過,我想一定的JLabel(在某些JPanels),以完全不同的樣式:
<style id="myUnrelatedPanel">
<state>
<opaque value="true"/>
<color value="green" type="BACKGROUND"/>
<color value="yellow" type="FOREGROUND"/>
</state>
</style>
<bind style="myLabel" type="name" key="_valueOfMyPanel.getName()_in_here"/>
上述不起作用,因爲JLabel的風格正在執行。
嵌套樣式似乎不起作用。編譯器不會抱怨; Synth選擇樣式區域 - 錨定到「標籤」並將其應用於樣式表中的所有標籤。
從合成器有限的Java文檔以下摘錄表明,它可以混合應用到地區和名稱的風格,而且它們的值將被合併:
您可以綁定到個人,命名 組件,無論它們是否爲 也綁定爲區域。例如, 假設您想讓「處理」 中的「取消」按鈕的「確定」和 按鈕與所有其他 按鈕不同。首先,您將使用 component.setName()方法提供OK 和取消按鈕名稱。然後, 將定義三種樣式:一種用於一般用於 按鈕(區域= 「按鈕」),一個用於OK按鈕(名稱 =「OK」),另一個用於取消按鈕(名稱=「取消」 )。最後,你會 綁定這些樣式是這樣的:
<bind style="styleButton" type="region" key="Button">
<bind style="styleOK" type="name" key="OK">
<bind style="styleCancel" type="name" key="Cancel">
當組件或區域勢必 不止一個風格,樣式 合併
注:正如樣式可以綁定到 多個區域或名稱,多個 樣式可以綁定到某個區域或 名稱。對於區域或名稱,這些多種樣式合併爲 。優先被 給後面的 文件中定義
但是樣式,它不會出現在第一樣式定義的可以通過在第二樣式定義來overrided?