2017-10-28 71 views
0

我想在JPanel中添加一個地圖視圖,我正在使用teamdev中的jxMaps。我嘗試這個代碼,但我不工作。在java中將mapView添加到JPanel

Map sample = new Map(); 

    JFrame frame = new JFrame("Map"); 
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    frame.setLayout(null); 
    frame.setSize(700, 500); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 

    JPanel panelMap = new JPanel(); 
    panelMap.setLayout(null); 
    panelMap.add(sample, BorderLayout.CENTER); 
    panelMap.setBounds(100, 100, 200, 200); 
    panelMap.setVisible(true); 
    frame.add(panelMap); 

我希望你能幫助我!

這裏Map類

public class Map extends MapView { 
    public Map() { 

    setOnMapReadyHandler(new MapReadyHandler() { 
     @SuppressWarnings("deprecation") 
     @Override 
     public void onMapReady(MapStatus status) { 
      if (status == MapStatus.MAP_STATUS_OK) { 
       final Map map = getMap(); 
       MapOptions options = new MapOptions(map); 
       MapTypeControlOptions controlOptions = new MapTypeControlOptions(map); 
       controlOptions.setPosition(ControlPosition.TOP_RIGHT); 
       options.setMapTypeControlOptions(controlOptions); 
       map.setOptions(options); 
       map.setCenter(new LatLng(map, 35.91466, 10.312499)); 

       map.setZoom(2.0); 

      } 
     } 
    }); 
} 

這個例子來自jxMap,https://www.teamdev.com/jxmaps

+0

哪'Map'是進口的? –

+0

有代碼@UsagiMiyamoto – Danny

回答

0

似乎存在佈局錯誤。如果爲容器設置null佈局,則必須手動爲每個子組件設置邊界。您的代碼示例沒有任何爲Map實例設置邊界的調用。換句話說,後:

panelMap.setLayout(null); 

你必須設置界地圖例如:

sample.setBounds(0, 0, 100, 100);