package com.iailab.netsdk.demo.frame.ThermalCamera;
|
|
import java.awt.BorderLayout;
|
import java.awt.Dimension;
|
import java.awt.FlowLayout;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyListener;
|
|
import javax.swing.JButton;
|
import javax.swing.JDialog;
|
import javax.swing.JLabel;
|
import javax.swing.JOptionPane;
|
import javax.swing.JPanel;
|
import javax.swing.JTextField;
|
|
import com.iailab.netsdk.common.BorderEx;
|
import com.iailab.netsdk.common.Res;
|
import com.iailab.netsdk.demo.module.ThermalCameraModule;
|
import com.iailab.netsdk.lib.ToolKits;
|
import com.iailab.netsdk.lib.NetSDKLib.NET_RADIOMETRYINFO;
|
|
/**
|
* 查询测温点对话框
|
*/
|
public class PointQueryDialog extends JDialog{
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
public PointQueryDialog() {
|
setTitle(Res.string().getShowInfo("POINT_TEMPER"));
|
setLayout(new BorderLayout());
|
setModal(true);
|
pack();
|
setSize(350, 300);
|
setResizable(false);
|
setLocationRelativeTo(null);
|
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
|
///////////////////////////////
|
queryPanel = new QueryPanel();
|
showPanel = new QueryShowPanel();
|
|
add(queryPanel, BorderLayout.NORTH);
|
add(showPanel, BorderLayout.CENTER);
|
}
|
|
|
/**
|
* 查询界面
|
* */
|
public class QueryPanel extends JPanel {
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
public QueryPanel() {
|
BorderEx.set(this, Res.string().getShowInfo("QUERY_CONDITION"), 1);
|
setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
|
|
JLabel XLabel = new JLabel(Res.string().getShowInfo("X"), JLabel.CENTER);
|
XTextField = new JTextField("0");
|
JLabel YLabel = new JLabel(Res.string().getShowInfo("Y"), JLabel.CENTER);
|
YTextField = new JTextField("0");
|
queryBtn = new JButton(Res.string().getShowInfo("QUERY"));
|
|
Dimension lableDimension = new Dimension(10, 20);
|
Dimension textFieldDimension = new Dimension(70, 20);
|
Dimension btnDimension = new Dimension(100, 20);
|
|
XLabel.setPreferredSize(lableDimension);
|
XTextField.setPreferredSize(textFieldDimension);
|
YLabel.setPreferredSize(lableDimension);
|
YTextField.setPreferredSize(textFieldDimension);
|
queryBtn.setPreferredSize(btnDimension);
|
|
add(XLabel);
|
add(XTextField);
|
add(YLabel);
|
add(YTextField);
|
add(queryBtn);
|
|
listener = new NumberKeyListener();
|
XTextField.addKeyListener(listener);
|
YTextField.addKeyListener(listener);
|
|
queryBtn.addActionListener(new ActionListener() {
|
|
@Override
|
public void actionPerformed(ActionEvent e) {
|
queryPointInfo();
|
}
|
});
|
}
|
|
private void queryPointInfo() {
|
try {
|
showPanel.clearData();
|
|
short x = Short.parseShort(XTextField.getText());
|
short y = Short.parseShort(YTextField.getText());
|
|
NET_RADIOMETRYINFO pointInfo =
|
ThermalCameraModule.queryPointTemper(ThermalCameraFrame.THERMAL_CHANNEL, x, y);
|
if (pointInfo == null) {
|
JOptionPane.showMessageDialog(null, ToolKits.getErrorCodeShow(), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
return;
|
}
|
|
showPanel.updateData(pointInfo);
|
|
}catch(NumberFormatException e) {
|
JOptionPane.showMessageDialog(null, Res.string().getShowInfo("COORDINATE_ILLEGAL"), Res.string().getErrorMessage(), JOptionPane.ERROR_MESSAGE);
|
}
|
}
|
|
private NumberKeyListener listener;
|
|
private JTextField XTextField;
|
private JTextField YTextField;
|
private JButton queryBtn;
|
}
|
|
/**
|
* 查询显示界面
|
* */
|
public class QueryShowPanel extends JPanel {
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
public QueryShowPanel() {
|
BorderEx.set(this, Res.string().getShowInfo("QUERY_RESULT"), 1);
|
setLayout(new FlowLayout(FlowLayout.CENTER, 5, 30));
|
|
JLabel meterTypeLabel = new JLabel(Res.string().getShowInfo("METER_TYPE"), JLabel.LEFT);
|
meterTypeTextField = new JTextField();
|
JLabel temperUnitLabel = new JLabel(Res.string().getShowInfo("TEMPER_UNIT"), JLabel.LEFT);
|
temperUnitTextField = new JTextField();
|
JLabel temperLabel = new JLabel(Res.string().getShowInfo("TEMPER"), JLabel.LEFT);
|
temperTextField = new JTextField();
|
|
Dimension lableDimension = new Dimension(100, 20);
|
Dimension textFieldDimension = new Dimension(130, 20);
|
meterTypeLabel.setPreferredSize(lableDimension);
|
temperUnitLabel.setPreferredSize(lableDimension);
|
temperLabel.setPreferredSize(lableDimension);
|
meterTypeTextField.setPreferredSize(textFieldDimension);
|
temperUnitTextField.setPreferredSize(textFieldDimension);
|
temperTextField.setPreferredSize(textFieldDimension);
|
|
meterTypeTextField.setEditable(false);
|
temperUnitTextField.setEditable(false);
|
temperTextField.setEditable(false);
|
|
add(meterTypeLabel);
|
add(meterTypeTextField);
|
add(temperUnitLabel);
|
add(temperUnitTextField);
|
add(temperLabel);
|
add(temperTextField);
|
}
|
|
public void updateData(NET_RADIOMETRYINFO stPointInfo) {
|
String[] data = new String[3];
|
|
String [] arrMeterType = Res.string().getMeterTypeList();
|
if (stPointInfo.nMeterType >= 1 &&
|
stPointInfo.nMeterType <= arrMeterType.length) {
|
data[0] = arrMeterType[stPointInfo.nMeterType-1];
|
}else {
|
data[0] = Res.string().getShowInfo("UNKNOWN");
|
}
|
|
String [] arrTemperUnit = Res.string().getTemperUnitList();
|
if (stPointInfo.nTemperUnit >= 1 &&
|
stPointInfo.nTemperUnit <= arrTemperUnit.length) {
|
data[1] = arrTemperUnit[stPointInfo.nTemperUnit-1];
|
}else {
|
data[1] = Res.string().getShowInfo("UNKNOWN");
|
}
|
|
data[2] = String.valueOf(stPointInfo.fTemperAver);
|
|
setData(data);
|
}
|
|
public void clearData() {
|
setData(new String[3]);
|
}
|
|
private void setData(String[] data) {
|
|
if (data.length != 3) {
|
System.err.printf("data length %d != 3", data.length);
|
return;
|
}
|
|
meterTypeTextField.setText(data[0]);
|
temperUnitTextField.setText(data[1]);
|
temperTextField.setText(data[2]);
|
}
|
|
private JTextField meterTypeTextField;
|
private JTextField temperUnitTextField;
|
private JTextField temperTextField;
|
}
|
|
|
|
class NumberKeyListener implements KeyListener {
|
|
public void keyTyped(KeyEvent e) {
|
int key = e.getKeyChar();
|
if (key < 48 || key > 57) {
|
e.consume();
|
}
|
}
|
|
public void keyPressed(KeyEvent e) {}
|
|
public void keyReleased(KeyEvent e) {}
|
}
|
|
private QueryPanel queryPanel;
|
private QueryShowPanel showPanel;
|
}
|