У меня есть стиль, определенный для 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"/>
Однако я хочу, чтобы некоторые JLabels (в определенных 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 по Synth предполагает, что можно смешивать стили, применяемые к регионам и именам, и что их значения будут объединены:
Вы можете привязать к человеку, по имени
компоненты, являются ли они или нет
также связаны как регионы. Например,
Предположим, вы хотите иметь «ОК» и
Обработанные кнопки "Отмена" в вашем графическом интерфейсе
иначе, чем все остальные
кнопок. Во-первых, вы бы дали ОК
и Отмена имен кнопок, используя
Метод component.setName (). Затем вы
будет определять три стиля: один для
кнопки в целом (регион =
«Кнопка»), одна для кнопки ОК (название
= «ОК») и один для кнопки «Отмена» (name = «Отмена»). Наконец, вы бы
свяжите эти стили следующим образом:
<bind style="styleButton" type="region" key="Button">
<bind style="styleOK" type="name" key="OK">
<bind style="styleCancel" type="name" key="Cancel">
Когда компонент или область связаны с
более одного стиля, стили
слиты
Примечание: так же, как стиль может быть связан с
несколько регионов или имен, несколько
стили могут быть связаны с регионом или
название. Эти несколько стилей объединены
для региона или имени. Приоритет
дано стилям, определенным позже в
файл
Однако не похоже, что определенный в первом стиле может быть переопределен определенным во втором стиле?