Хотя из усеченного примера не ясно, в чем проблема, я предполагаю, что вы создаете цикл, который, к сожалению, может произойти довольно просто с Swing и MVC. то есть одна модель обновляется как часть прослушивания другой модели, и это снова вызывает обновление в другой модели. В Java-свинге у вас есть два варианта,
a) временно удалить слушателя, который обновляет модель (например, выполните removeActionListener
перед вызовом setSelectedItem
на JComboBox
, а затем повторно зарегистрируйтесь с addActionListener
)
b) проверить источник события (getSource
на java.util.EventObject
) и игнорировать события в модели, которые произошли от той же самой модели.
Теперь качели в Scala упрощены, поэтому у вас нет объектов и источников событий. Вы можете добавить источник в свой класс событий. Возможно, удастся удалить реакцию и добавить ее снова после установки состояния модели.