今天的问题是将地图视图嵌入到JavaFX应用程序中。我基本上遵循StackOverFlow - embedding google map in JavaFX和Embed OpenLayers with OpenStreetMap上的说明,因此*.html
文件之类的所有内容都已就绪。但是,人们正在将WebView
添加到主Scene
。对我而言,我想将WebView
添加到SplitPane
。 ThereFore我准备了application.fxml
文件如下:
<SplitPane id="SplitPane" dividerPositions="0.5" orientation="HORIZONTAL" prefHeight="260.0" prefWidth="850.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<TableView id="tableView1" fx:id="table" prefHeight="263.0" prefWidth="433.0">
<columns>
<TableColumn text="one" /><TableColumn text="two" /><TableColumn text="three" />
</columns>
</TableView>
<AnchorPane prefHeight="200.0" prefWidth="200.0">
<children>
<Region fx:id="webViewRegion" prefHeight="200.0" prefWidth="200.0" />
</children>
</AnchorPane>
</items>
</SplitPane>
启动应用程序时,FXMLLoader
加载FXML文件。在应用程序控制器中,我得到Region
,如下所示:
@FXML
private Region webViewRegion;
class MyMapView extends Region {
HBox toolbar;
WebView webview = new WebView();
WebEngine webEngine = webview.getEngine();
public MyMapView() {
final URL urlGoogleMaps = getClass().getResource("openstreetmap.html");
webEngine.load(urlGoogleMaps.toExternalForm());
getChildren().add(webview);
}
}
private void load_webView() {
webViewRegion = new MyMapView();
}
对我来说,现在我并不确切知道如何以正确的方式填充Region
和Webview
,或者是否有更好的方法?