Я пытаюсь написать собственный менеджер макетов .
Компоненты должны быть размещены и иметь размеры относительно друг к другу.
Это означает: когда пользователь перетаскивает или изменяет размер компонента, некоторые другие
компоненты (но не , которые были изменены пользователем вручную) должны
быть изменены.
Swing говорит менеджеру по расположению размещать компоненты каждый раз, когда
некоторые из них перемещены / изменены. Это проблема, следовательно, макет
менеджер сам перемещает / изменяет размеры компонентов:
Не получается, метод
layoutContainer (родительский контейнер) вызывается несколько раз.
пример всего этого (упрощенно, фактически мой менеджер раскладки делает
более сложные вещи):
[-component1-][-component2-------][-component3-]
- пользователь изменяет размер компонента2, чтобы он стал меньше
другие компоненты, чтобы все они занимали то же пространство, что и раньше:
[-component1-][-component2-][-component3-------]
- здесь действия должны прекратиться , но они продолжаются: теперь менеджер раскладки
вызывается из-за изменения размера компонента3
Как я мог достичь своего намерения (элегантным способом)?
Спасибо.
EDIT:
Удалена информация, связанная с потоками, после предложений от ответчиков.