2017-11-01 12 views
0

JXMaps에서 MapView를 JavaFX의 VBox에 추가하고 싶습니다. 테두리 패널에 MapView를 추가 한 다음 VBox에 추가하려고했지만이 해결책이 없습니다. 여기JavaFX : VBox에 MapView 추가

public class ControlerMap 
{ 
    @FXML private BorderPane borderPanel; 
    @FXML private Button butom; 
    @FXML VBox cosa; 

    @FXML public void initialize() 
    { 
     MapView sample = new MapView(); 
     sample.setMaxHeight(394.0); 
     sample.setPrefWidth(704.0); 
     sample.setVisible(true); 
     borderPanel = new BorderPane(sample); 
     borderPanel.setVisible(true); 
     borderPanel.setLayoutX(76.0); 
     borderPanel.setLayoutY(134.0); 
     borderPanel.setPrefHeight(200.0); 
     borderPanel.setPrefWidth(467.0); 
     cosa.getChildren().add(borderPanel); 
    } 
} 

그리고 .FXML 파일에서 내 코드입니다 : 당신이 빈지도보기를 만들어 볼 수 있듯이

<?import javafx.scene.control.Button?> 
<?import javafx.scene.layout.AnchorPane?> 
<?import javafx.scene.layout.BorderPane?> 
<?import javafx.scene.layout.VBox?> 

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" 
minWidth="-Infinity" prefHeight="496.0" prefWidth="757.0" 
xmlns="http://javafx.com/javafx/8.0.102" xmlns:fx="http://javafx.com/fxml/1" 
fx:controller="prueba.web.googleMap.ControlerMap"> 
<children> 
     <Button fx:id="butom" layoutX="25.0" layoutY="14.0" 
    mnemonicParsing="false" text="Button" /> 
    <VBox fx:id="cosa" layoutX="32.0" layoutY="68.0" prefHeight="394.0" 
     prefWidth="704.0"> 
     <children> 
     <BorderPane fx:id="borderPanel" prefHeight="400.0" 
      prefWidth="704.0" /> 
     </children> 
    </VBox> 
    </children> 
</AnchorPane> 
+0

FXML 파일에서 추가 한 첫 번째 경계선보다 더 작은'VBox' 394의 기본 높이를 만들었습니다. 따라서 컨트롤러에 두 번째 테두리 창을 추가하면 기존 테두리 창 아래로 이동하여 보이지 않게됩니다. –

답변

0

, 난 당신이 날 도울 수 있기를 바랍니다, 이건 내 코드입니다.

MapView sample = new MapView(); 

지도는 실제로 속성 (최소한 줌 및 중앙)을 초기화 한 후에 만 ​​그려집니다. 다음과 같이 설정해야합니다 :

sample.setOnMapReadyHandler(new MapReadyHandler() { 
     @Override 
     public void onMapReady(MapStatus status) { 
      if (status == MapStatus.MAP_STATUS_OK) { 
       final Map map = mapView.getMap(); 
       map.setCenter(new LatLng(35.91466, 10.312499)); 
       map.setZoom(2.0); 
      } 
     } 
});