2010-07-07 6 views
4

Я реализую пользовательский вид & Почувствуйте использование Synth для моего приложения - в основном предоставляя пользовательские версии SynthStyle, SynthPainter и SynthStyleFactory.Вставки для пользовательских функций Synth

Я не с использованием любого XML, то есть все осуществляется через API Java. В общем, это работает отлично.

Лучший способ установить соответствующие вставки, однако, немного сложнее. Я могу увидеть различные варианты:

  • Переопределить getInsets для SynthStyle вернуть конкретные врезки для каждого региона
  • Применить границу к компонентам с помощью SynthStyle.installDefaults
  • Установите все врезки в (0,0,0,0) и компенсации в методах рисования
  • Создание новых делегатов ComponentUI

что бы быть лучшим подходом и почему?

ответ

1

Вы пришли к этому решению? Вот мое мнение о вещах ...

Переопределение getInsets() выглядит как приятное решение, если у вас простой стиль с небольшим количеством контекстов. Это должно помочь сохранить вставки последовательно в вашем графическом интерфейсе только с одной точкой изменения.

Применение пустой границы к компонентам для этой цели кажется немного хакерским. Если вам нужно применить пользовательскую границу к компоненту, вы можете случайно удалить пустую границу, если вы не переопределите методы setBorder() для использования составной границы.

Установка всех вводов в 0 не нужна, так как они начинаются с 0 уже ... Я был бы очень напуган мыслью о переписывании методов рисования! Это обычно делается для добавления последних штрихов к компонентам, а не для переопределения их всех границ.

Я не совсем уверен, как создание нового ComponentUI поможет, так как это в основном касается калибровки и рисования (как и выше).

Сначала я попробую вариант 1, так как он будет иметь глобальное влияние на ваше приложение, а затем начнет разрабатывать те исключения и контексты, которые вы хотите поместить в него.

Смежные вопросы