`
rethink
  • 浏览: 16370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

基于javafx开发的查找客户端可用串口列表

阅读更多

最近看到很多关于javafx的文章,觉得javafx针对以前开发客户端程序的不便的确有些提高,所以自己也试着开发个小应用,看看javafx是否能在以后的工作中使用。

 

一、开发目的

基于b/s结构,在客户端查找可用的串口列表。

 

二、开发环境

NetBeans IDE 6.5 for JavaFX 1.0,tomcat5,rxtx 2.1-7r2

 

三、相关资源

1、java串口操作框架,下载 rxtx 2.1-7r2。

2、了解串口操作,参考http://rxtx.qbang.org/wiki/index.php/Examples

3、开发工具,下载 NetBeans IDE 6.5 for JavaFX 1.0

4、了解javafx,参考http://developers.sun.com.cn/javafx/docs/tutorials/

其他资源略

 

四、编码

1、首先开发串口操作程序DiscoveringAvailablePorts.java

    public static List getAvailableSerialPortsName() {
        List result = new ArrayList();
        Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();
        while (thePorts.hasMoreElements()) {
            CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();
            switch (com.getPortType()) {
                case CommPortIdentifier.PORT_SERIAL:
                    try {
                        CommPort thePort = com.open("CommUtil", 50);
                        thePort.close();
                        result.add(com.getName());
                    } catch (PortInUseException e) {
                        System.out.println("Port, " + com.getName() + ", is in use.");
                    } catch (Exception e) {
                        System.err.println("Failed to open port " + com.getName());
                        e.printStackTrace();
                    }
            }
        }
        return result;
    }

注:RXTXcomm.jar 拷贝到: %JAVA_HOME%\jre\lib\ext
      rxtxSerial.dll 拷贝到: %JAVA_HOME%\jre\bin

并在开发的工程中引入RXTXcomm.jar

 

2、然后开发界面程序SerialConfig.fx

var portNames =
new DiscoveringAvailablePorts().getAvailableSerialPortsName();

var label = SwingLabel{text: "serial port: "};

var combobox = SwingComboBox{
    width: 100
    items:[
        SwingComboBoxItem{
            text: "Please select..." },
        for (idx in portNames) {
            SwingComboBoxItem{
                text:idx.toString()}
        }
    ]
    selectedIndex: 0};

var button =  SwingButton{text: "Save"};

Stage {
    title: "Components"
    width: 344
    height: 240
    visible: true
    scene: Scene{
        fill: Color.CORNSILK
        content: VBox{
            translateX: 10
            translateY: 30
            spacing: 20
            content:[
                HBox{
                    spacing: 10
                content:[label,combobox,HBox{ translateX:40 content:[button]}]
            }
            ]
        }
    }
}

 注:开发上面的程序时候,在NB中建立javafx项目,名称javafxTutorial。

 

3、最后建立一个最简单的web工程,并编写页面程序index.jsp。

  <body>
    This is my JSP page. <br>
<script src="http://dl.javafx.com/dtfx.js"></script>
<script>
    javafx(
        {
              archive: "<%=path%>/javafxTutorial.jar",
              width: 400,
              height: 200,
              code: "com.howelltech.SerialConfig",
              name: "javafxTutorial"
        }
    );
</script>
</body>

 

五、部署

1、NB项目属性中,在Run配置中选择Run in Browser;在Application配置中选择Self Signed Jar,其他可选。

2、NB项目目录中,在dist目录中,存在javafxTutorial.html、javafxTutorial.jar、javafxTutorial_browser.jnlp三个文件和lib目录包括RXTXcomm.jar一个文件。把此目录中所有文件拷贝到刚才建立好的web工程中,与index.jsp同路径。

 

六、测试

1、在服务器端,如果不启动tomcat可以直接执行javafxTutorial.html既能看到效果。如果启动tomcat,那么必须修改javafxTutorial_browser.jnlp中的端口号,要与tomcat使用的一致。

2、在客户端,必须拷贝rxtxSerial.dll到 %JRE_HOME%\bin下,然后直接访问服务器链接就可以。

 

 

开发完成后,总体感觉javafx比applet要方便,无论是编码还是部署。但是开发javafx的时候也有很多不方便的地方,比如目前的IDE不支持图形化开发,虽然支持一些控件的托拽,但终归是代码不够直观;另外,javafx程序发布后在客户端运行得还是有些慢。终归是个新技术,还需要慢慢适应啊。

 

另外,遗留下来两个问题,看看大家有什么好办法。

1、关于客户端需要拷贝rxtxSerial.dll问题,有没有更加方便的方法。

2、javafx项目打包问题,有没有更好的方法,比如打个包,其他页面就可以直接调用。

 

对了添加一张结果图,比较丑:)

 

  • 大小: 9.2 KB
分享到:
评论

相关推荐

    基于JAVAFX的微信客户端和服务器.zip

    本文将详细介绍一个基于JavaFX技术构建的微信客户端和服务器项目,该项目还整合了JFoenix框架,并采用IntelliJ IDEA作为开发环境,MySQL作为后台数据库。通过分析项目源代码和答辩PPT,我们可以深入理解其设计思路和...

    基于JavaFx设计的邮件客户端

    开发环境:IDEA 2019.3.2、JavaFX Scene Builder 2.0 配置:java11.0.5、mail.jar、activation.jar、javafx-sdk-11.0.2 项目采用MVC框架搭建,邮件收发部分采用POP3与SMTP协议,使用JavaFX Scene Builder设计界面...

    基于JavaFX的Redis客户端简易设计源码

    本项目为基于JavaFX实现的Redis客户端简易设计源码,共包含89个文件,其中Java源文件65个,FXML文件6个,Gradle文件5个,Markdown文件4个,属性文件2个,XML文件2个,Git忽略文件1个,LICENSE文件1个,YAML文件1个,...

    基于JavaFx的商店管理系统源码.zip

    基于JavaFx的商店管理系统源码.zip基于JavaFx的商店管理系统源码.zip基于JavaFx的商店管理系统源码.zip基于JavaFx的商店管理系统源码.zip基于JavaFx的商店管理系统源码.zip基于JavaFx的商店管理系统源码.zip基于...

    基于JAVA开发的客户端软件.zip

    【标题】:“基于JAVA开发的客户端软件.zip” 这个标题揭示了我们要讨论的核心内容,即一个使用Java编程语言开发的客户端应用程序。Java是一种广泛使用的、跨平台的编程语言,以其“一次编写,到处运行”的特性而...

    JavaFX聊天界面

    oim-fx-ui 是我开发的oim聊天软件的界面,使用JavaFX开发。oim是已经实现聊天功能的完整程序,有兴趣的朋友可以去开源中国的git库下载,地址:https://git.oschina.net/onlysoftware/oim-fx,而这里就仅仅只是界面的...

    RIA开发权威指南:基于JavaFX 完整版

    本书名为《RIA开发权威指南:基于JavaFX 完整版》,主要面向JavaFX的初学者和拥有一定Java编程技术的程序开发人员。书籍通过基础讲解与应用案例相结合的方式,分章节逐步向读者展示JavaFX的核心概念与实用技术。全书...

    基于JavaFx开发的带有界面的文件系统

    【标题】: "基于JavaFx开发的带有界面的文件系统" 【内容】: 在软件开发领域,构建用户界面是至关重要的一步,它为用户提供与应用交互的途径。本项目是基于JavaFx技术实现的一个带有图形用户界面(GUI)的文件系统...

    jfxvnc:基于JavaFX的VNC客户端

    是基于JavaFX的Java VNC远程桌面客户端,分为两个部分。 一个模块(jfxvnc-net)是基于的RFB / VNC远程桌面协议。 另一个模块(jfxvnc-ui)包含基于JavaFX的VNC查看器,并使用刚好足够的MVP框架构建。 模组 jfxvnc-...

    wlfx:基于JavaFX的Weblate客户端

    wlfx WLFX是基于JavaFX的Weblate客户端版权所有(C)2020 Javier Llorente 依存关系JavaFX 11以上杰克逊·达宾德jgettext ikonli-javafx ikonli-icomoon-pack java-diff-utils使用Maven进行构建和运行mvn javafx:run

    使用javafx2搭建简单客户端嵌入浏览器项目

    有需要使用java开发客户端的,可使用该项目,该项目使用javafx实现用web技术开发客户端,该例子仅供参考学习使用(注:由于javafx已经更新本人并没有去了解新版本的javafx的使用,这个例子只举有参考作用,如果发现...

    Abstract Java game library based on JavaFX. 基于JavaFX的抽象Java游戏库

    基于JavaFX的抽象Java游戏库 Abstract Java game library based on JavaFX. 基于JavaFX的抽象Java游戏库 Abstract Java game library based on JavaFX. 基于JavaFX的抽象Java游戏库 Abstract Java game library ...

    基于JAVAFX的钢琴小工具

    JavaFX是一种强大的、用于创建富互联网应用程序(RIA)的Java库,它允许开发人员构建具有丰富图形用户界面的桌面和Web应用。在这个“基于JAVAFX的钢琴小工具”项目中,开发者利用JavaFX的特性制作了一个模拟真实钢琴...

    javaFx开发的炫酷浏览器

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,它扩展了Java SE的应用范围,提供了一套强大的图形和媒体API,使得开发者可以创建具有丰富用户界面和交互性的应用。在这个“javaFx开发的...

    基于javafx和fxml的超市管理系统源码+项目说明+报告.zip

    基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+...

    数据库课程设计-基于javafx和fxml的超市管理系统.zip

    数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip...

    javaFX完整项目案例可用.zip

    在这个名为"javaFX完整项目案例可用.zip"的压缩包中,你将找到一个基于JavaFX实现的完整桌面应用程序示例。 JavaFX项目的核心在于它的场景图(Scene Graph)架构,它允许开发者以树状结构来组织UI元素,从而方便地...

    基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip

    基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 ...

    javaFx pdf 阅读软件

    JavaFX PDF阅读软件是一款基于JavaFX技术开发的PDF文档查看应用程序。它利用开源库icepdf来解析和渲染PDF文档,为用户提供一个用户友好的界面来查看和操作PDF文件。下面我们将详细探讨JavaFX、icepdf以及如何使用...

    java权限管理系统桌面客户端 基于javafx、javaSwing、spring boot 开发权限管理系统

    java权限管理系统桌面客户端 基于javafx、javaSwing、spring boot 开发权限管理系统。

Global site tag (gtag.js) - Google Analytics