栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaFX中引用SuperMap iobjects Java打开一幅地图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaFX中引用SuperMap iobjects Java打开一幅地图

作者:dongyx

说到Java可视化界面编程,可能大家想到的就是swing和JavaFX。由于SuperMap iobjects Java的控件接口是基于swing来写的,在swing界面设计上Java组件已经很好的能够支持了,那么Java组件能否也能支持JavaFX呢,下面小编来为大家介绍Java组件使用JavaFX打开一幅地图。

一、什么是JavaFX

JavaFX是一个强大的图形和多媒体处理工具包集合,它允许开发者来设计、创建、测试、调试和部署富客户端程序,并且和Java一样跨平台。

在JavaFX中要想显示一个控件就必须具备以下要素:
窗口          Stage

  -场景       Scene

    -布局     stackPane

      -控件   Button

二、创建一个空的JavaFX框架程序

package com.test;

import javafx.application.Application;
import javafx.stage.Stage;


public class Test extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

三、在JavaFX中引用Java组件的MapControl并显示一幅地图
工程地址:链接:https://pan.baidu.com/s/1vg404-RYMExDMYe3J5UqDw 
提取码:zz7x 
1.通过SwingNode实例化一个MapControl

MapControl mapControl=new MapControl();
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                Workspace workspace = new Workspace();
                WorkspaceConnectionInfo workspaceConnectionInfo = new
                        WorkspaceConnectionInfo();
                workspaceConnectionInfo.setType(WorkspaceType.SMWU);
                String file = "工作空间地址";
                workspaceConnectionInfo.setServer(file);
                workspace.open(workspaceConnectionInfo);
                mapControl.getMap().setWorkspace(workspace);
                mapControl.getMap().open(workspace.getMaps().get(0));
                mapControl.setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.CROSSHAIR_CURSOR));
                swingNode.setContent(mapControl);
            }
        });

2.创建布局控件
StackPane pane = new StackPane();
3.将MapControl添加到布局中

AnchorPane anchorPane=new AnchorPane();
StackPane pane = new StackPane();
HBox hbox = new HBox();
Button zoomout = new Button("缩小");
pane.setPrefHeight(1024);
pane.setPrefWidth(2048);
pane.getChildren().add(swingNode);
hbox.getChildren().addAll(zoomin, zoomout);
anchorPane.getChildren().addAll(pane,hbox);
AnchorPane.setTopAnchor(pane, 50.0);

4.创建一个场景Scene
Scene scene = new Scene(anchorPane);

5.将场景Scene添加到窗口Stage中
stage.setScene(scene);
6.显示窗口
stage.show();
显示结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667929.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号