2011-01-28 95 views
0

我最近遇到JXMapKit,我不是一個強大的程序員,但想在我的應用程序中使用它。我使用Eclipse並構建GUI應用程序。我想將JXMapKit整合到我的GUI中。我有latitutude/longitude的ArrayList使用座標我想要顯示在地圖上的路徑覆蓋。JXMapKit幫助開始

從我閱讀的內容可以很容易地將它合併到Swing中,但還沒有找到足夠簡單的示例讓我理解並讓我開始。我創建了一個新項目,只想提出地圖,但遇到了錯誤。從我的理解,它無法加載瓷磚?它可能是一個糟糕的jar文件,或者我需要設置瓷磚供應商嗎?預先感謝您的幫助。

import javax.swing.JFrame; 
import org.jdesktop.swingx.JXMapKit; 
import org.jdesktop.swingx.JXMapKit.DefaultProviders; 

public class MapTest { 
    public static void createGui(){ 
     JFrame frame = new JFrame(); 
     frame.setVisible(true); 
     frame.setSize(400, 400); 
     JXMapKit mapViewer = new JXMapKit(); 
     mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps); 
     mapViewer.setDataProviderCreditShown(true); 
     frame.add(mapViewer); 
    } 

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

而這些都是錯誤的:

Failed to load a tile at url: http://tile.openstreetmap.org/6/32/21.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) 

如果我拿出setDefaultProvider設置爲開放街道地圖它仍然無法加載默認的提供者。

+0

它現在。問題是jar文件,它不支持它需要使用的方法。 – t0x13 2011-01-28 03:49:53

回答

2
mapViewer.setDefaultProvider(DefaultProviders.OpenStreetMaps); 

變化爲

mapViewer.setDefaultProvider(org.jdesktop.swingx.JXMapKit.DefaultProviders.OpenStreetMaps);