Pages: 1
Прграмное задание действия объекту
Здравствуйте! Допустим мы создали какой-нибудь объект программно:
Code
ShapeTextField box = new ShapeTextField( Simulation.this, true, ........);
Каким образом теперь задать действие (действие при изменении) также программно? Следуя документации, делается это через класс Presentable и метод executeShapeControlAction(), но все мои попытки ни к чему не привели. Надеюсь, кто-то сталкивался с такой задачей.
Добрый день, Армен!
Следуя API, действие осуществляется методом action(), в вашем случае box.action(). Для программно созданного объекта этот метод должен быть переопределён (см. https://ru.wikipedia.org/wiki/Переопределение_метода).
Создадим объект и переопределим метод на старте модели (Свойства агента Main, поле On Stratup):
Code
ShapeTextField box = new ShapeTextField(this,
             true,
             50.0,
             50.0,
             100.0,
             25.0,
             white,
             black,
             true,
             new Font("Dialog", 0, 11 ),
             ShapeControl.TYPE_DOUBLE,
             0.0,
             100.0) {
@Override
public void action() {
     traceln("Programmatically created editbox"); //код, исполняемый при изменении
   }
   }; 

presentation.add(box); //отображение объекта

Запустите модель, вы увидите созданный объект. Если ввести туда какое-либо значение и нажать Enter, то в консоли вы увидите надпись:
Programmatically created editbox.
Pages: 1
Users browsing this topic (1 guests, 0 registered, 0 hidden)