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

一、开发目的

昂昂溪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

基于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

 
 
 
  1. public static List getAvailableSerialPortsName() {   
  2. List result = new ArrayList();   
  3. Enumeration thePorts = CommPortIdentifier.getPortIdentifiers();   
  4. while (thePorts.hasMoreElements()) {   
  5. CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement();   
  6. switch (com.getPortType()) {   
  7. case CommPortIdentifier.PORT_SERIAL:   
  8. try {   
  9. CommPort thePort = com.open("CommUtil", 50);   
  10. thePort.close();   
  11. result.add(com.getName());   
  12. } catch (PortInUseException e) {   
  13. System.out.println("Port, " + com.getName() + ", is in use.");   
  14. } catch (Exception e) {   
  15. System.err.println("Failed to open port " + com.getName());   
  16. e.printStackTrace();   
  17. }   
  18. }   
  19. }   
  20. return result;   
  21. }  

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

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

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

 
 
 
  1. var portNames =   
  2. new DiscoveringAvailablePorts().getAvailableSerialPortsName();   
  3.  
  4. var label = SwingLabel{text: "serial port: "};   
  5.  
  6. var combobox = SwingComboBox{   
  7. width: 100   
  8. items:[   
  9. SwingComboBoxItem{   
  10. text: "Please select" },   
  11. for (idx in portNames) {   
  12. SwingComboBoxItem{   
  13. text:idx.toString()}   
  14. }   
  15. ]   
  16. selectedIndex: 0};   
  17.  
  18. var button = SwingButton{text: "Save"};   
  19.  
  20. Stage {   
  21. title: "Components"   
  22. width: 344   
  23. height: 240   
  24. visible: true   
  25. scene: Scene{   
  26. fill: Color.CORNSILK   
  27. content: VBox{   
  28. translateX: 10   
  29. translateY: 30   
  30. spacing: 20   
  31. content:[   
  32. HBox{   
  33. spacing: 10   
  34. content:[label,combobox,HBox{ translateX:40 content:[button]}]   
  35. }   
  36. ]   
  37. }   
  38. }   
  39. }  

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

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

 
 
 
  1. <body>   
  2. This is my JSP page. <br>   
  3. <script src="http://dl.JavaFX.com/dtfx.js"></script>   
  4. <script>   
  5. JavaFX(   
  6. {   
  7. archive: "<%=path%>/JavaFXTutorial.jar",   
  8. width: 400,   
  9. height: 200,   
  10. code: "com.howelltech.SerialConfig",   
  11. name: "JavaFXTutorial"   
  12. }   
  13. );   
  14. </script>   
  15. </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项目打包问题,有没有更好的方法,比如打个包,其他页面就可以直接调用。

【编辑推荐】

  1. 主流RIA技术JavaFX、Flex和SilverLight、AJAX比较
  2. 使用JavaFx创建可拖动的Applet示例
  3. JavaFX和Java之间的互操作性
  4. JavaFX对Java开发者到底意味着什么
  5. RIA之争 JavaFX是否能后来居上?

网页名称:基于JavaFX开发的查找客户端可用串口列表
当前地址:http://www.36103.cn/qtweb/news8/3308.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联