Swing Frage JXMapviewer

Nux vomika

Mitglied
Hallo,
ich habe mir die swing-ws.jar heruntergeladen um den JXMapViewer zu implementieren. Ich habe die .jar der Library des Projektes in NetBeans hinzugefügt und das package org.jdesktop.swingx.*; importiert. Ich kann auch eine Instanz vom JXMapViewer initialisiere.

Java:
mapKit1 = new JXMapKit();

Jedoch habe ich keine Methoden dieser Klasse.
Wenn ich mapKit1. schreibe erscheint bei den meisten Klassen ein PopUp mit den verschiedenen Methoden. Dort funktioniert es aber nicht. Warum nicht?

2. Frage:
Um die Drag and Drop-Funktion beim JXMapViewer zu nutzen soll man laut dieser Seite): "Note that the drag operation will only work if all of the .jars are inside of your project directory. That's why you must move them all to the [projectdir]/lib directory first."

Was meinen die mit [projectdir]. In meinem Projektordner ist kein Ordner "dir". Was muss ich tun.

Vielen Dank im Voraus
 
Ich habe dieses Programm geschrieben:
Java:
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.jdesktop.swingx.*;
import org.jdesktop.swingx.JXMapKit.DefaultProviders;
import org.jdesktop.swingx.mapviewer.GeoPosition;


public class Karte1 extends JFrame {
	JPanel jPanel;
	JXMapKit map;

	public Karte1(){
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		map = new JXMapKit();
		map.setDefaultProvider(DefaultProviders.OpenStreetMaps);
		map.setAddressLocation(new GeoPosition(48.07696, 11.65720));
		map.setZoom(13);
		
		
		
		this.add(map);
		this.setVisible(true);
	}

	public static void main(String[] args) {
		new Karte1();
	}
}

Ich habe dem Erstellungspfad swing-worker.jar, swingx-1.6.1.jar, swingx-bean und swingx-ws.jar dem Erstellungspfad hinzugefügt. Es wird jedoch keine Karte dargestellt und ich bekomme diese Fehlermeldungen:

Failed to load a tile at url: http://tile.openstreetmap.org/14/11882/9472.png
java.lang.NoSuchMethodError: org.jdesktop.swingx.util.PaintUtils.loadCompatibleImage(Ljava/io/InputStream😉Ljava/awt/image/BufferedImage;
at org.jdesktop.swingx.mapviewer.DefaultTileFactory$TileRunner.run(DefaultTileFactory.java:375)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
15.12.2011 14:55:16 org.jdesktop.swingx.mapviewer.DefaultTileFactory$TileRunner run
 
Gibt es eine Möglichkeit, diesen "Teadrop" (also die Grafik, die den Waypoint markiert) zu ändern? Zum Beipsiel Farbe ändern und eine Zahl reinzeichnen?
 
Hallo, wenn man z.B. die Farbe des Renderes ändern will implementiert man sich einen eigenen WaypointRenderer.

Dem painter weist man einen WaypointRenderer zu, dann hat man die Wayoints farbig.

Gruß Olaf

WaypointPainter<JXMapViewer> painter = new WaypointPainter<JXMapViewer>();
painter.setRenderer(new ColorWaypointRenderer(color));
painter.setWaypoints(waypoints);

Java:
class ColorWaypointRenderer implements WaypointRenderer {

    private Color color;

    public ColorWaypointRenderer(Color color) {
        this.color = color;
    }

    @Override
    public boolean paintWaypoint(Graphics2D g, JXMapViewer map, Waypoint waypoint) {

        g.setStroke(new BasicStroke(3f));
        g.setColor(color);
        g.drawOval(-10, -10, 20, 20);
        g.setStroke(new BasicStroke(1f));
        g.drawLine(-10, 0, 10, 0);
        g.drawLine(0, -10, 0, 10);

        return false;
    }
 

Zurück
Oben