}
catch (Exception e) { e.printStackTrace(); }
/**
* Create the application */
public MainFrame() { jbInit(); }
/**
* Initialize the contents of the frame */
private void jbInit() { frame = new JFrame(); frame.setResizable(false); frame.setBounds(100, 100, 205, 294); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(panel, BorderLayout.CENTER); panel.setLayout(null); panel.add(Label1); Label1.setText(\请选择端口:\ Label1.setBounds(10, 10, 87, 24); panel.add(comboBoxPortID); comboBoxPortID.setBounds(92, 10, 94, 24); panel.add(buttonStart); buttonStart.addActionListener(new ButtonStartActionListener()); buttonStart.setText(\启动监控\ buttonStart.setBounds(10, 226, 87, 28); panel.add(sliderTemp); sliderTemp.setEnabled(false); sliderTemp.addChangeListener(new SliderTempChangeListener()); sliderTemp.setValue(0); sliderTemp.setMinimum(-55);
26
}
sliderTemp.setMaximum(125);
sliderTemp.setOrientation(SwingConstants.VERTICAL); sliderTemp.setBounds(60, 73, 30, 151);
panel.add(labelSliderTemp); labelSliderTemp.setText(\
labelSliderTemp.setBounds(92, 143, 30, 18);
panel.add(label);
label.setText(\现在温度:\label.setBounds(42, 49, 66, 18);
panel.add(label_1);
label_1.setText(\报警温度:\label_1.setBounds(114, 49, 66, 18);
panel.add(sliderAlarm);
sliderAlarm.addMouseMotionListener(new SliderAlarmMouseMotionListener()); sliderAlarm.addMouseListener(new SliderAlarmMouseListener()); sliderAlarm.addChangeListener(new SliderAlarmChangeListener()); sliderAlarm.setValue(0);
sliderAlarm.setMinimum(-55); sliderAlarm.setMaximum(125);
sliderAlarm.setOrientation(SwingConstants.VERTICAL); sliderAlarm.setBounds(120, 73, 23, 151);
panel.add(labelSliderAlarm); labelSliderAlarm.setText(\
labelSliderAlarm.setBounds(149, 143, 37, 18);
panel.add(buttonExit);
buttonExit.addActionListener(new ButtonExitActionListener()); buttonExit.setText(\退出\
buttonExit.setBounds(115, 226, 71, 28);
myInit(); //初始化
private void myInit() { serialcomm=new SerialComm(); //新建串口对象 comBoxPortInit(); //下拉列表初始化
27
file=new File(\ //打开配置文件 if(!file.exists()) //是否存在 { try { if(!file.createNewFile()) //不存在新建一个 { JOptionPane.showMessageDialog(null, \创建配置文件失败\ } } catch (IOException e) { JOptionPane.showMessageDialog(null, \创建配置文件出错\ e.printStackTrace(); } } try { filein=new DataInputStream(new FileInputStream(file)); //打开配置文件输入流 }
catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, \创建配置文件输入流出错\ e.printStackTrace(); } try { int alarm=filein.readInt(); //读取报警值 sliderAlarm.setValue(alarm); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(alarm)); //设置报警滑条标签为0; filein.close(); }
catch (EOFException e) { sliderAlarm.setValue(0); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(0)); //设置报警滑条标签为0; }
catch (IOException e) { JOptionPane.showMessageDialog(null, \配置文件读入出错\
28
sliderAlarm.setValue(0); //出错,设置报警滑条值为0; labelSliderAlarm.setText(String.valueOf(0)); //设置报警滑条标签为0; e.printStackTrace(); } try { fileout=new DataOutputStream(new FileOutputStream(file));//打开配置文件输出流 } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(null, \创建配置文件输出流出错\ e.printStackTrace(); } }
private void comBoxPortInit() { Enumeration ports = serialcomm.getPorts(); //得到所有可用串口端口; if(ports==null) //可用端口为空 { JOptionPane.showMessageDialog(null, \没有端口\ return ; } comboBoxPortID.removeAllItems(); //清空下拉列表项 while(ports.hasMoreElements()) { CommPortIdentifier portid=(CommPortIdentifier) ports.nextElement(); //得到一个端口 if(portid.getPortType()==CommPortIdentifier.PORT_SERIAL) //是否为串口 { comboBoxPortID.addItem(portid.getName()); //是串口,添加到下拉列表框 } } comboBoxPortID.setForeground(Color.GREEN); //设置下拉列表前景色为绿 }
private class SliderTempChangeListener implements ChangeListener {
29
public void stateChanged(ChangeEvent e) { sliderTemp_stateChanged(e); } } private class SliderAlarmChangeListener implements ChangeListener { public void stateChanged(ChangeEvent e) { sliderAlarm_stateChanged(e); } } private class ButtonExitActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { buttonExit_actionPerformed(e); } } private class ButtonStartActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { buttonStart_actionPerformed(e); } } protected void sliderTemp_stateChanged(ChangeEvent e) { if(readdata>128)//正温度 { readdata=128-readdata; } sliderTemp.setValue(getReaddata()); //把串口读出来的数据赋值给温度滑条 labelSliderTemp.setText(String.valueOf(sliderTemp.getValue())); //把温度滑条的值赋值给温度标签,以显示 } protected void sliderAlarm_stateChanged(ChangeEvent e) { System.out.println(\ labelSliderAlarm.setText(String.valueOf(sliderAlarm.getValue())); //把警告滑条的值赋值给警告标签,以显示 if(flag_alarm) { if(sliderAlarm.getValue() 30