i using jpanel overlaylayout draw 2 unrelated components on top of each other. specifically, have transparent component contains own line drawings, , beneath that, using jmapviewer component, displays openstreetmap tiles. works.
except when jmapviewer loads tiles asynchronously. in case, calls repaint() on when loading finished, , draws on line layer. line layer cannot know this, since cannot know when jmapviewer chooses repaint itself.
now have expected jpanel repaint line layer when map layer repaints, since knows correct drawing order , knows line layer has repainted. doesn't this.
how solve this?
jmapviewer implements tileloaderlistener , calls repaint() when loading finished. should able update map , forward event layer, suggested below.
myviewer map = new myviewer(); ... private class myviewer extends jmapviewer { @override public void tileloadingfinished(tile tile, boolean success) { super.tileloadingfinished(tile, success); linelayer.repaint(); } }
Comments
Post a Comment