今天的问题是关于将地图视图嵌入到 JavaFX 应用程序中。我基本上遵循了StackOverFlow 上的说明 - 在 JavaFX 中嵌入谷歌地图并使用 OpenStreetMap 嵌入 OpenLayers,因此*.html
文件之类的所有内容都已到位。但是在那里,人们正在添加WebView
到 main Scene
。对我来说,我想WebView
将SplitPane
. 因此,我准备了以下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>
FXML 文件由FXMLLoader
应用程序启动时加载。在应用程序控制器中,我得到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
是否有更好的方法?