Swing Synth Skin: область для текста, выделенная мышью?

Если вы выберете текст в Textfield/TextArea/в чем-то еще, вы, вероятно, обнаружите, что цвет текста инвертирован, а цвет фона поля изменен на что-то темное/отличное от того, что было раньше.

Есть ли регион, чтобы описать это?

При выборе/выделении текста с помощью мыши в текстовом поле следующий стиль, примененный с помощью клавиши «.*», применяет стиль, как и ожидалось. Это наводит меня на мысль, что ключ региона есть только для выделенного текста:

   <style id="backingStyle">
    <opaque value="true"/>
    <font name="Arial" size="12"/>
    <state>
      <color value="#333333" type="BACKGROUND"/>
      <color value="WHITE" type="FOREGROUND"/>
    </state>
  </style>
  <bind style="backingStyle" type="region" key=".*"/>

Однако будь я проклят, если найду его!

Спасибо!


person 8bitjunkie    schedule 06.04.2011    source источник


Ответы (1)


Synth L&F может иметь разные свойства для разных состояний. Таким образом, нет отдельной области для выделенного текста. Различные состояния описываются следующим образом:

<state>
  <color value="#333333" type="BACKGROUND"/>
  <color value="WHITE" type="FOREGROUND"/>
</state>
<state value="SELECTED">
  <color value="#000080" type="BACKGROUND"/>
  <color value="BLACK" type="FOREGROUND"/>
</state>
person Ha.    schedule 06.04.2011
comment
Я должен добавить, что мне нужно было использовать type=TEXT_BACKGROUND и type=TEXT_BACKGROUND. Мне также нужно было удалить мои теги ‹opaque› и ‹font› внутри тегов ‹state› для backingStyle — эти теги ранее препятствовали прохождению стиля для выбранного. Спасибо, что привели меня к ответу! - person 8bitjunkie; 06.04.2011
comment
Одна из проблем с Synth заключается в том, что у него очень мало документации. Я потратил много времени на его исходный код, чтобы понять, как он работает. Кстати, вы должны отметить правильные ответы на ваши вопросы. - person Ha.; 07.04.2011
comment
Извините, ха, забыл поставить галочку. Сделано для вас! - person 8bitjunkie; 07.04.2011