Мне нужен способ подождать, пока (Swing) JComponent не будет полностью окрашен. Эта актуальная проблема возникает из приложения openmap: задача состоит в том, чтобы нарисовать карту (mapBean) с парой слоев и создать изображение из этой карты.
К сожалению, и это четко задокументировано, средство форматирования изображения берет текущее состояние с карты для создания изображения, и есть вероятность, особенно когда карты становятся сложными, что средство форматирования вызывается до того, как mapBean, JComponent, нарисован .
Хотя это и объясняется в этом приложении openmap, проблема довольно общая и предположительно связана с Swing. Прямо сейчас я просто жду фиксированное время (одну секунду), но это не устраняет риск создания неполных карт ...
Редактировать
Еще несколько деталей - я должен начать с создания (OpenMap) MapPanel, который internallz создает MapBean (подкласс JComponent) и MapHandler. Затем я наполняю MapHandler географическими слоями, и Framework начинает рисовать географические данные «на» JComponent типа MapBean.
После добавления всех слоев на карту я использую другой каркасный класс для создания изображения JPG (или: байта [], который содержит данные изображения). И это может вызвать проблемы, если я не буду ждать: этот 'создатель изображения' создает изображение из текущего состояния bean-компонента карты, и если я вызываю этого 'создателя изображения' на раннем этапе, какая-то карта слои не окрашены и отсутствуют. Довольно раздражает ...