[英]Using JxMaps in JavaFX project
我正在使用JavaFX為GUI開發Java桌面應用程序。 該程序的一個重要部分包括一個我決定使用JxMaps的地圖,因為它是一個功能強大的框架,具有非常好的文檔,使其成為最佳選擇。
然而,問題是它被集成在Swing中,我認為這應該不是問題,因為我找到了這個例子中的代碼。 事實上,它編譯,但由於某種原因我得到“應用程序無響應”。 我假設它與此集成有關,因為當我在JavaFX應用程序之外運行它時,映射可以正常工作。
我當前的程序看起來完全像這樣:
Main.java
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javax.swing.*;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
final SwingNode swingNode = new SwingNode();
createMap(swingNode);
StackPane pane = new StackPane();
pane.getChildren().add(swingNode);
primaryStage.setTitle("Fields Map");
primaryStage.setScene(new Scene(pane, 700, 500));
primaryStage.show();
}
private void createMap(final SwingNode swingNode) {
final FieldsMap mapView = new FieldsMap();
SwingUtilities.invokeLater(() -> swingNode.setContent(mapView));
}
}
FieldsMap.java
import com.teamdev.jxmaps.*;
import com.teamdev.jxmaps.swing.MapView;
public class FieldsMap extends MapView {
public FieldsMap() {
setOnMapReadyHandler(new MapReadyHandler() {
@Override
public void onMapReady(MapStatus status) {
// Check if the map is loaded correctly
if (status == MapStatus.MAP_STATUS_OK) {
// Getting the associated map object
final Map map = getMap();
// Creating a map options object
MapOptions options = new MapOptions(map);
// Creating a map type control options object
MapTypeControlOptions controlOptions = new MapTypeControlOptions(map);
// Changing position of the map type control
controlOptions.setPosition(ControlPosition.TOP_RIGHT);
// Setting map type control options
options.setMapTypeControlOptions(controlOptions);
// Setting map options
map.setOptions(options);
// Setting the map center
map.setCenter(new LatLng(map, 35.91466, 10.312499));
// Setting initial zoom value
map.setZoom(2.0);
}
}
});
}
}
最后一個是Github存儲庫中Map示例的精確副本。
最后,我可以在這里看到我的控制台中的確切輸出以及我在右鍵單擊Java應用程序時看到的內容:
提前致謝。
來自JxMaps團隊的Vitaly來自這里。 目前JxMaps不支持JavaFX。 我們正在努力在下一個版本中實現JavaFX支持。 請通過電子郵件告訴我們,一旦有此功能的版本發布,我們會通知您。
另外兩個專門針對JavaFX的選項:
http://gluonhq.com/announcing-gluon-maps/
https://github.com/rterp/GMapsFX
我一直在使用Gluon Map組件進行內部項目,到目前為止它符合我們的要求。
我沒有用過GMapsFX。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.