Я использую JPanel
с OverlayLayout
, чтобы нарисовать два несвязанных компонента поверх друг друга.В частности, у меня есть прозрачный компонент, который содержит мои собственные линейные рисунки, и ниже я использую компонент JMapViewer
, который отображает плитки OpenStreetMap.Это работает.
За исключением случаев, когда JMapViewer загружает плитки асинхронно.В этом случае он вызывает repaint()
сам по себе, когда загрузка заканчивается, и он рисует себя поверх моего линейного слоя.Мой линейный слой не может этого знать, поскольку он не может знать, когда JMapViewer решит перекрасить себя.
Теперь я ожидал, что JPanel
перекрасит мой линейный слой при перерисовке слоя карты, поскольку он знает правильныйпорядок рисования и знает, что мой линейный слой должен быть перекрашен.Но это не делает этого.
Как бы вы решили это?