2016-06-25 7 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の正確なコピーであること。

は最後に、私は、Javaアプリ上で右クリックしたときに私が見る私のコンソールと何の正確な出力をここで見ることができます。事前に

Console output + "Application not Responding"

感謝を。

答えて

1

ここからJxMapsチームのVitaly。現時点では、JxMapsはJavaFXをサポートしていません。私たちは次のバージョンのいずれかでJavaFXサポートを実装しようと努めています。私たちに電子メールで連絡をとってください。この機能を備えたバージョンがなくなると、お知らせします。特にJavaFXのための

関連する問題