最近看到很多关于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技术构建的微信客户端和服务器项目,该项目还整合了JFoenix框架,并采用IntelliJ IDEA作为开发环境,MySQL作为后台数据库。通过分析项目源代码和答辩PPT,我们可以深入理解其设计思路和...
开发环境: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客户端简易设计源码,共包含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基于...
【标题】:“基于JAVA开发的客户端软件.zip” 这个标题揭示了我们要讨论的核心内容,即一个使用Java编程语言开发的客户端应用程序。Java是一种广泛使用的、跨平台的编程语言,以其“一次编写,到处运行”的特性而...
oim-fx-ui 是我开发的oim聊天软件的界面,使用JavaFX开发。oim是已经实现聊天功能的完整程序,有兴趣的朋友可以去开源中国的git库下载,地址:https://git.oschina.net/onlysoftware/oim-fx,而这里就仅仅只是界面的...
本书名为《RIA开发权威指南:基于JavaFX 完整版》,主要面向JavaFX的初学者和拥有一定Java编程技术的程序开发人员。书籍通过基础讲解与应用案例相结合的方式,分章节逐步向读者展示JavaFX的核心概念与实用技术。全书...
【标题】: "基于JavaFx开发的带有界面的文件系统" 【内容】: 在软件开发领域,构建用户界面是至关重要的一步,它为用户提供与应用交互的途径。本项目是基于JavaFx技术实现的一个带有图形用户界面(GUI)的文件系统...
是基于JavaFX的Java VNC远程桌面客户端,分为两个部分。 一个模块(jfxvnc-net)是基于的RFB / VNC远程桌面协议。 另一个模块(jfxvnc-ui)包含基于JavaFX的VNC查看器,并使用刚好足够的MVP框架构建。 模组 jfxvnc-...
wlfx WLFX是基于JavaFX的Weblate客户端版权所有(C)2020 Javier Llorente 依存关系JavaFX 11以上杰克逊·达宾德jgettext ikonli-javafx ikonli-icomoon-pack java-diff-utils使用Maven进行构建和运行mvn javafx:run
有需要使用java开发客户端的,可使用该项目,该项目使用javafx实现用web技术开发客户端,该例子仅供参考学习使用(注:由于javafx已经更新本人并没有去了解新版本的javafx的使用,这个例子只举有参考作用,如果发现...
基于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是一种强大的、用于创建富互联网应用程序(RIA)的Java库,它允许开发人员构建具有丰富图形用户界面的桌面和Web应用。在这个“基于JAVAFX的钢琴小工具”项目中,开发者利用JavaFX的特性制作了一个模拟真实钢琴...
JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的框架,它扩展了Java SE的应用范围,提供了一套强大的图形和媒体API,使得开发者可以创建具有丰富用户界面和交互性的应用。在这个“javaFx开发的...
基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+报告.zip基于javafx和fxml的超市管理系统源码+项目说明+...
数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip数据库课程设计--基于javafx和fxml的超市管理系统.zip...
在这个名为"javaFX完整项目案例可用.zip"的压缩包中,你将找到一个基于JavaFX实现的完整桌面应用程序示例。 JavaFX项目的核心在于它的场景图(Scene Graph)架构,它允许开发者以树状结构来组织UI元素,从而方便地...
基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 JavaFX 和 sqlite 的电子相册管理系统源码.zip基于 ...
JavaFX PDF阅读软件是一款基于JavaFX技术开发的PDF文档查看应用程序。它利用开源库icepdf来解析和渲染PDF文档,为用户提供一个用户友好的界面来查看和操作PDF文件。下面我们将详细探讨JavaFX、icepdf以及如何使用...
java权限管理系统桌面客户端 基于javafx、javaSwing、spring boot 开发权限管理系统。