netbeans java 串口_基于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

publicstaticList getAvailableSerialPortsName() {

List result=newArrayList();

Enumeration thePorts=CommPortIdentifier.getPortIdentifiers();while(thePorts.hasMoreElements()) {

CommPortIdentifier com=(CommPortIdentifier) thePorts.nextElement();switch(com.getPortType()) {caseCommPortIdentifier.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();

}

}

}returnresult;

}

注:RXTXcomm.jar 拷贝到: %JAVA_HOME%"jre"lib"ext

rxtxSerial.dll 拷贝到: %JAVA_HOME%"jre"bin

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

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

var portNames=newDiscoveringAvailablePorts().getAvailableSerialPortsName();

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

var combobox=SwingComboBox{

width:100items:[

SwingComboBoxItem{

text:"Please select

9b8a8a44dd1c74ae49c20a7cd451974e.png"},for(idx in portNames) {

SwingComboBoxItem{

text:idx.toString()}

}

]

selectedIndex:0};

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

Stage {

title:"Components"width:344height:240visible:truescene: Scene{

fill: Color.CORNSILK

content: VBox{

translateX:10translateY:30spacing:20content:[

HBox{

spacing:10content:[label,combobox,HBox{ translateX:40content:[button]}]

}

]

}

}

}

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

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

五、部署

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项目打包问题,有没有更好的方法,比如打个包,其他页面就可以直接调用。

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

1e6ea88430e23ffb857564913c33c7d8.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值