package com.product.device.test;
|
|
import java.awt.Dimension;
|
import java.awt.Font;
|
import java.awt.GridBagConstraints;
|
import java.awt.GridBagLayout;
|
import java.awt.Insets;
|
import java.awt.Label;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.io.DataOutputStream;
|
import java.io.InputStream;
|
import java.io.OutputStream;
|
import java.net.Socket;
|
import java.nio.charset.Charset;
|
|
import javax.swing.JButton;
|
import javax.swing.JComboBox;
|
import javax.swing.JLabel;
|
import javax.swing.JPanel;
|
import javax.swing.JScrollPane;
|
import javax.swing.JSeparator;
|
import javax.swing.JTextArea;
|
import javax.swing.JTextField;
|
import javax.swing.SwingConstants;
|
|
|
|
public class DeviceGatherPanel extends JPanel {
|
Charset utf8Charset = Charset.forName("UTF-8");
|
Charset gbkCharset = Charset.forName("GBK");
|
Charset gbCharset = Charset.forName("GB2312");
|
Charset ISOCharset = Charset.forName("ISO-8859-1");
|
Charset US = Charset.forName("US-ASCII");
|
|
|
private JLabel logger=new JLabel(" ",Label.LEFT);
|
|
private JLabel ip_label=new JLabel("IP地址:");
|
private JTextField ip=new JTextField();
|
|
private JLabel port_label=new JLabel("端口:");
|
private JTextField port=new JTextField();
|
|
private JLabel info_label=new JLabel("消息内容:");
|
private JTextField info=new JTextField();
|
|
public JTextArea log = new JTextArea();
|
public JButton start=new JButton(" 发送消息 ");
|
|
JScrollPane jsp;
|
int height=35;
|
int whidth=300;
|
// int lw=250;
|
Font ft =new Font("微软雅黑", Font.BOLD, 14);
|
DeviceDataGatherTest f=null;
|
public DeviceGatherPanel(DeviceDataGatherTest f) {
|
this.f=f;
|
|
GridBagConstraints c = new GridBagConstraints();
|
GridBagLayout bg = new GridBagLayout();
|
this.setLayout(bg);
|
c.anchor = GridBagConstraints.WEST;
|
c.insets = new Insets(2, 5, 2, 5);
|
c.gridx = 0;
|
c.gridy = 0;
|
c.gridwidth = 2;
|
c.gridheight = 1;
|
c.fill=GridBagConstraints.WEST;
|
logger.setText("处理日志......");
|
logger.setFont(ft);
|
logger.setHorizontalAlignment(SwingConstants.LEFT);
|
logger.setPreferredSize(new Dimension(700, 50));
|
logger.setHorizontalAlignment(SwingConstants.LEFT);
|
this.add(logger,c);
|
c.gridy = 1;
|
c.gridx = 0;
|
c.gridwidth = 1;
|
log.setRows(30);
|
log.setColumns(60);
|
jsp = new JScrollPane(log,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
|
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
|
|
this.add(jsp,c);
|
|
JPanel config=new JPanel();
|
// config.setPreferredSize(new Dimension(lw, 400));
|
GridBagLayout rbg = new GridBagLayout();
|
config.setLayout(rbg);
|
GridBagConstraints rc = new GridBagConstraints();
|
rc.anchor = GridBagConstraints.CENTER;
|
rc.insets = new Insets(2, 10, 2, 10);
|
rc.gridx = 0;
|
rc.gridy = 0;
|
rc.gridwidth = 1;
|
rc.gridheight = 1;
|
config.add(ip_label,rc);
|
rc.gridx = 1;
|
ip.setPreferredSize(new Dimension(whidth, height));
|
config.add(ip,rc);
|
//
|
rc.gridx = 0;
|
rc.gridy = 1;
|
|
config.add(port_label, rc);
|
rc.gridx = 1;
|
port.setPreferredSize(new Dimension(whidth, height));
|
config.add(port, rc);
|
//
|
rc.gridx = 0;
|
rc.gridy = 2;
|
rc.gridwidth = 2;
|
JSeparator sep = new JSeparator(SwingConstants.CENTER);
|
sep.setPreferredSize(new Dimension(whidth+160, 20));
|
config.add(sep,rc);
|
rc.gridx = 0;
|
rc.gridy = 3;
|
rc.gridwidth = 1;
|
config.add(info_label, rc);
|
rc.gridx = 1;
|
info.setPreferredSize(new Dimension(whidth, height));
|
config.add(info, rc);
|
rc.gridx = 1;
|
rc.gridy = 4;
|
start.setPreferredSize(new Dimension(whidth, height));
|
config.add(start, rc);
|
start.addActionListener(new ActionListener() {
|
public void actionPerformed(ActionEvent e) {
|
try{
|
if(!"".equals(info.getText())) {
|
Socket s=new Socket(ip.getText(),Integer.parseInt(port.getText()));
|
OutputStream dout=s.getOutputStream();
|
dout.write(info.getText().getBytes(gbkCharset));
|
// DataOutputStream dout=new DataOutputStream(s.getOutputStream());
|
// dout.writeUTF(info.getText());
|
// dout.writeBytes(info.getText());
|
dout.flush();
|
dout.close();
|
InputStream inputStream = s.getInputStream();
|
//IO读取
|
byte[] buf = new byte[2048];
|
int readlen = 0;
|
while((readlen = inputStream.read(buf))!= -1){
|
System.out.println(new String(buf,0,readlen));
|
}
|
s.close();
|
|
}
|
}catch(Exception ee){
|
ee.printStackTrace();
|
System.out.println(ee);
|
}
|
}
|
});
|
|
c.gridy = 1;
|
c.gridx = 1;
|
this.add(config,c);
|
ip.setText("211.149.162.168");
|
port.setText("8899");
|
}
|
|
|
|
}
|