
18.07.2005, 00:42
|
|
Регистрация: Jul 2005
Сообщений: 8
|
а это, случайно, не поэтому
Цитата:
Я пытаюсь изменить свойства _x / _y / ряд других компонента ComboBox, но ничего визуально не меняется! Трейс выводит, что все поменялось! Как быть?
Почитайте Using Components, главу Creating Components, и вам станет ясно, в чем дело. Компоненты версии 2 сильно инкапсулированы и всегда наследуют у одного из двух корневых классов: UIObject / UIComponent. При этом при изменении любого getter-setter-а перерисовка откладывается методом invalidate(), наследуемым у UIObject. Invalidate просто вызывает private метод, который заставляет компонент при следующей смене кадра перерисоваться, поэтому трейсы и выводят вам все, как вы хотите. Но есть одно большое НО: для таких сложных компонентов, как ComboBox, внутри проводится масса проверок и именно это сводит ваши действия на нет.
Выходов два: пользоваться методом move(), который есть у любого UI компонента, либо использовать листнеры и следить за событием draw (о нем можно посмотреть в хелпе, статья UIObject.draw).
|
|