Hallo.
Ich stelle mit JXMapKit eine Karte dar. Per Default wird London in den Mittelpunkt der Karte gestellt und dort ein Wegpunkt(Waypoint) gezeichnet. Das funktioniert soweit. Nun versuche ich den Wegpunkt zu löschen. Das funktioniert leider nicht. Anbei meine Map-Klasse welche die Darstellung der Karte in einem Panel regelt. (Dieses Panel kann dann ganz normal in Swing benutzt werden.
Hier die Ausgabe:
1
0
1
Kann das jemand erklären, bzw. zeigen/erklären wie ich die Wegpunktliste manipulieren kann?
Vielen Dank
hirsra
Ich stelle mit JXMapKit eine Karte dar. Per Default wird London in den Mittelpunkt der Karte gestellt und dort ein Wegpunkt(Waypoint) gezeichnet. Das funktioniert soweit. Nun versuche ich den Wegpunkt zu löschen. Das funktioniert leider nicht. Anbei meine Map-Klasse welche die Darstellung der Karte in einem Panel regelt. (Dieses Panel kann dann ganz normal in Swing benutzt werden.
Java:
import java.awt.BorderLayout;
import java.awt.Component;
import java.util.Set;
import javax.swing.JPanel;
import org.jdesktop.swingx.JXMapKit;
import org.jdesktop.swingx.JXMapKit.DefaultProviders;
import org.jdesktop.swingx.mapviewer.Waypoint;
import org.jdesktop.swingx.mapviewer.WaypointPainter;
import org.jdesktop.swingx.painter.CompoundPainter;
import org.jdesktop.swingx.painter.Painter;
/** A panel containing a JXMapKit component. */
public class Map extends JPanel { private final JXMapKit map;
/**
* Create the panel.
*/
public Map() {
super();
this.map = new JXMapKit();
this.map.setDefaultProvider(DefaultProviders.OpenStreetMaps);
final Set<Waypoint> s = this.getWaypointPainter().getWaypoints();
// Löschen der Waypunkts funktioniert nicht.
System.out.println(s.size());
s.clear();
System.out.println(s.size()); // in s gelöscht
System.out.println(this.getWaypointPainter().getWaypoints().size()); // aber nicht hier
this.setLayout(new BorderLayout(0, 0));
this.add(this.map, BorderLayout.CENTER);
}
/**
* @return the component JXMapKit
*/
public JXMapKit getJXMapKit() {
final Component[] components = this.getComponents();
JXMapKit result = null;
for (final Component component : components) {
if (component instanceof JXMapKit) {
if (result != null) {
throw new RuntimeException("more than one JXMapKit found"); //$NON-NLS-1$
}
result = (JXMapKit) component;
}
}
return result;
}
public WaypointPainter getWaypointPainter() {
WaypointPainter result = null;
if (this.map.getMainMap().getOverlayPainter() instanceof CompoundPainter) {
final CompoundPainter painter = (CompoundPainter) this.map.getMainMap().getOverlayPainter();
for (final Painter tmp : painter.getPainters()) {
if (tmp instanceof WaypointPainter) {
result = (WaypointPainter) tmp;
break;
}
}
}
return result;
}
}
Hier die Ausgabe:
1
0
1
Kann das jemand erklären, bzw. zeigen/erklären wie ich die Wegpunktliste manipulieren kann?
Vielen Dank
hirsra