2017-10-28 62 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);