Java实现串口通信

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这是用Java编写的实现串口通信的程序源代码。至于支持串口通信的comm.jar 包,请各位从sun或别的网站处下载!这里只提供源码让大家参考。

gui.java算是一个框架;panel.java是面板,相当于前台;SerialCommunication.java是一个JavaBean,相当于后台。面板视图如下:

从串口中读入信息的机制如下:后台监测到有信息读入到缓存,就读取之,用一个字符串变量储存,并置“有新信息读入”的标识(相当于一个开关)为真。面板有一个计时器监听器,用轮询的方式查询后台的“有新信息读入”的标识是否为真,若为真则马上读入到前台,显示到文本框上,并置“有新信息读入”的标识为假(顺手关门)。

gui.java:

import java.awt.*;

import javax.swing.*;

public class gui

{

public static void main(String[] args)

{

JFrame frame=new JFrame("密谈");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(new panel());

frame.pack();

frame.setVisible(true);

frame.setResizable(false);

}

}

panel.java:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class panel extends JPanel

{

String SB;

JTextArea show;

JTextField text;

JButton submit,connect,stop;

SerialCommunication port;

Timer timer;

JPanel write;

JPanel read;

public panel()

{

SB=new String("");

port=new SerialCommunication(1);

timer=new Timer(100,new timeListener());

show=new JTextArea(20,25);

show.setLineWrap(true);

show.setAutoscrolls(true);

text=new JTextField("",25);

submit=new JButton("提交");

connect=new JButton("连接");

stop=new JButton("断开");

write=new JPanel();

read=new JPanel();

setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));

submit.addActionListener(new submitListener());

connect.addActionListener(new connectListener());

stop.addActionListener(new stopListener());

write.setPreferredSize(new Dimension(300,70));

write.add(text);

write.add(connect);

write.add(submit);

write.add(stop);

write.setBackground(Color.CYAN);

read.setPreferredSize(new Dimension(300,375));

read.setBackground(Color.yellow);

read.add(show);

add(read);

add(write);

}

private class submitListener implements ActionListener {//提交按钮的监听器

public void actionPerformed(ActionEvent event)

{

String s=text.getText();

port.write(s);

SB=new String(port.readBuffer());

show.append(SB);

System.out.println("提交!");

}

}

private class connectListener implements ActionListener {//连接按钮的监听器

public void actionPerformed(ActionEvent event)

{

port.open();

timer.start();

System.out.println("连接!");

}

}

private class stopListener implements ActionListener

{//断开按钮的监听器

public void actionPerformed(ActionEvent event)

{

port.close();

timer.stop();

System.out.println("断开!");

}

}

private class timeListener implements ActionListener {//timer的监听器,用作轮询后台

public void actionPerformed(ActionEvent event)

{

if(port.dataComes())

{

SB=new String(port.readBuffer());

port.dataHadRead();

show.append(SB);

相关文档
最新文档