gpt4 book ai didi

java - 在 JavaFX 项目中使用 JxMaps

转载 作者:行者123 更新时间:2023-12-01 22:59:05 28 4
gpt4 key购买 nike

我正在使用 JavaFX 作为 GUI 来开发 Java 桌面应用程序。该程序的一个重要部分包括我决定使用的 map JxMaps因为它是一个功能强大的框架,具有非常好的文档,因此成为最佳选择。

但是,问题是它集成在 Swing 中,我认为这不应该是问题,因为我从 this example 找到了代码。 。事实上,它可以编译,但由于某种原因我得到“应用程序未响应”。我认为这与此集成有关,因为当我在 JavaFX 应用程序之外运行 map 时,它们可以完美地工作。

我当前的程序看起来完全像这样:

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

这最后一个是 Map example in their Github repository 的精确副本.

最后,我的控制台中的确切输出以及右键单击 java 应用程序时看到的内容可以在此处看到:

Console output + "Application not Responding"

提前致谢。

最佳答案

来自 JxMaps 团队的 Vitaly。目前 JxMaps 不支持 JavaFX。我们正在努力在下一版本之一中实现 JavaFX 支持。通过电子邮件给我们留言,一旦具有此功能的版本推出,我们会通知您。

关于java - 在 JavaFX 项目中使用 JxMaps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38030641/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com