2016-06-25 6 views
3

GUI 용 JavaFX를 사용하여 Java에서 데스크탑 응용 프로그램을 개발 중입니다. 이 프로그램의 핵심 부분은 매우 유용한 문서를 가진 강력한 프레임 워크이기 때문에 JxMaps을 사용하기로 결정한지도로 구성되어 있습니다.JavaFX 프로젝트에서 JxMaps 사용

그러나 문제는이 코드가 this example에서 발견 된 이후로 문제가되지 않아야한다고 생각한 스윙에 통합되어 있다는 점입니다. 실제로 컴파일되지만 어떤 이유로 응용 프로그램이 응답하지 않습니다. 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); 
       } 
      } 
     }); 
    } 
} 

Map example in their Github repository의 정확한 사본 인이 마지막 하나를 .

마지막으로, 나는 자바 응용 프로그램을 마우스 오른쪽 버튼으로 클릭 할 때 내가 보는 내 콘솔과 무엇의 정확한 출력은 여기에서 볼 수 있습니다 : 사전에

Console output + "Application not Responding"

감사합니다.

답변

1

Vitaly from JxMaps 팀. 현재 JxMaps는 JavaFX를 지원하지 않습니다. 우리는 다음 버전 중 하나에서 JavaFX 지원을 구현하기 위해 노력하고 있습니다. 이메일을 통해 회신을 보내주십시오.이 기능이있는 버전이 출시되면 알려 드리겠습니다. 특히 자바 FX에 대한