JavaFX:将 MapView 添加到 VBox

标签 java javafx javafx-8 jxmapviewer jxmaps

我想将 JXMaps 中的 MapView 添加到 JavaFX 中的 VBox,我尝试将 MapView 添加到边框面板,然后添加到 VBox,但我找不到任何解决方案,希望您能提供帮助我,这是我的代码:

 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>

最佳答案

正如我所见,您创建了空的 MapView。

MapView sample = new MapView();

只有在初始化其属性(至少缩放和居中)后, map 才会真正绘制。您必须按以下方式设置它:

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);
          }
       }
});

关于JavaFX:将 MapView 添加到 VBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47049281/

相关文章:

java - 我在编译 Java 代码时遇到问题。我推测这是因为第二种方法 "method1"中存在转换/升级错误

java - 如果字符串与键条目匹配,如何返回键及其值

java - 将字符串数组传递给准备好的语句数组 (JDBC + SQLServer)

JavaFx TableView 、表网关模式和联接

JavaFX - FlowPane 自动调整大小

javafx - 在 WebEngine JavaFX 中设置 HTTP header

java - 使用 Spring 数据混淆 hibernate 行为

Java - 跨平台文件路径

java - 在 JavaFX 中将形状放置在 Canvas 上

java - 可编辑的TableTreeView,如何取消编辑