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"); } }