Witam wszystkich,
Tworzę sobie program do wyświetlania punktów na mapie. Korzystam z jXMapViewer2, mapa działa fajnie ale punkty na mapie nie mają opcji MouseClicked więc znalazłem coś takiego: https://blogs.java.net/node/692955#comment-767089. Działa ale niestety wyświetla tylko jeden punkt, a ja chciałbym aby wyświetlał wszystkie które dodam. Trochę kodu:
JButton jb = new JButton();
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("The button was clicked");
}
});
Set<Waypoint> waypoints = new HashSet<Waypoint>();
waypoints.add(new SwingWaypoint(jb, new GeoPosition(0,0)));
waypoints.add(new SwingWaypoint(jb, new GeoPosition(10,10)));
for (Waypoint wp : waypoints)
mapkit.add(((SwingWaypoint) wp).getComponent());
WaypointPainter<Waypoint> waypointPainter = new WaypointPainter<Waypoint>(){
@Override
protected void doPaint(Graphics2D g, JXMapViewer map, int width, int height) {
for (Waypoint wp : getWaypoints()) {
Point2D gp_pt = map.getTileFactory().geoToPixel(
wp.getPosition(), map.getZoom());
Rectangle rect = map.getViewportBounds();
Point pt = new Point(
(int) gp_pt.getX() - rect.x,
(int) gp_pt.getY() - rect.y);
JComponent component = ((SwingWaypoint) wp).getComponent();
component.setLocation(pt);
}
}
waypointPainter.setWaypoints(waypoints);
mapkit.setOverlayPainter(waypointPainter);
Nie mam zielonego pojęcia dlaczego tak się dzieje.
Z góry dziękuje za pomoc.
Pozdrawiam