📄 cjf.java
字号:
package dianduidian;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;import java.net.UnknownHostException;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.WindowConstants;public class CJF extends javax.swing.JFrame { { //Set Look & Feel try { javax.swing.UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"); } catch(Exception e) { e.printStackTrace(); } } private JPanel jPanelN; private JButton bsend; private JScrollPane jScrollPane1; private JTextField tsend; private JTextArea show; private JButton bconn; private JLabel jLabel1; private JTextField tip; private JPanel jPanelS; /** * Auto-generated main method to display this JFrame */ public static void main(String[] args) { CJF inst = new CJF(); inst.setVisible(true); } public CJF() { super(); initGUI(); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); this.setTitle("\u5ba2\u6237\u7aef\u7a97\u53e3"); { jScrollPane1 = new JScrollPane(); getContentPane().add(jScrollPane1, BorderLayout.CENTER); jScrollPane1.setPreferredSize(new java.awt.Dimension(392, 214)); jScrollPane1.setVerifyInputWhenFocusTarget(false); { show = new JTextArea(); jScrollPane1.setViewportView(show); show.setText("show");// show.setPreferredSize(new java.awt.Dimension(388, 187)); } } { jPanelN = new JPanel(); FlowLayout jPanelNLayout = new FlowLayout(); jPanelNLayout.setAlignment(FlowLayout.RIGHT); getContentPane().add(jPanelN, BorderLayout.NORTH); jPanelN.setLayout(jPanelNLayout); { jLabel1 = new JLabel(); jPanelN.add(jLabel1); jLabel1.setText("IP:"); } { tip = new JTextField(); jPanelN.add(tip); tip.setPreferredSize(new java.awt.Dimension(77, 20)); } { bconn = new JButton(); jPanelN.add(bconn); bconn.setText("\u8fde\u63a5"); bconn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try{ bconnActionPerformed(evt); System.out.println("完成"); }catch(IOException ie){ show.append(ie+"\n"); System.out.println(ie); } } }); } } { jPanelS = new JPanel(); FlowLayout jPanel1Layout = new FlowLayout(); jPanel1Layout.setAlignment(FlowLayout.RIGHT); getContentPane().add(jPanelS, BorderLayout.SOUTH); jPanelS.setLayout(jPanel1Layout); { tsend = new JTextField(); jPanelS.add(tsend); tsend.setPreferredSize(new java.awt.Dimension(257, 20)); } { bsend = new JButton(); jPanelS.add(bsend); bsend.setText("\u53d1\u9001\u4fe1\u606f"); bsend.setEnabled(false); bsend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { bsendActionPerformed(evt); } }); } } pack(); setSize(400, 300); } catch (Exception e) { e.printStackTrace(); } } Socket s=null; BufferedReader br=null; BufferedWriter bw=null; WriteData wd=null; private ReadThr rt; /** * 当点击。 连接 按钮时的处理方法 * @param evt * @throws IOException */ private void bconnActionPerformed(ActionEvent evt) throws IOException { //得到我需要连接的IP与端口默认的时候为12345 String tem=tip.getText().trim(); String [] ipport=tem.split(":"); if(ipport.length==1){ try { s=new Socket(ipport[0],12345);//默认的 } catch (UnknownHostException e) { show.append(e+"\n"); //显示异常信息 } catch (IOException e) { show.append(e+"\n"); //显示异常信息 } }else{ try { s=new Socket(ipport[0],Integer.parseInt(ipport[1])); show.append("连接成功!"); } catch (NumberFormatException e) { show.append("您所提供的端口应为数据"+"\n"); //显示异常信息 } catch (UnknownHostException e) { show.append(e+"\n"); //显示异常信息 } catch (IOException e) { show.append(e+"\n"); //显示异常信息 } //默认的 } br=new BufferedReader(new InputStreamReader(s.getInputStream())); bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); bsend.setEnabled(true); wd=new WriteData(bw); //启动读数据的线程,并设置为 后台线程 rt=new ReadThr(br,show,jScrollPane1); rt.setDaemon(true); rt.start(); System.out.println("OK"); //s=new Socket(ip,port); } /** * 点击。发送信息时的处理方法 * @param evt */ private void bsendActionPerformed(ActionEvent evt) { wd.Write(tsend.getText()); int height = 20; Point p = new Point(); p.setLocation(0, show.getLineCount() * height); jScrollPane1.getViewport().setViewPosition(p); show.append(tsend.getText()+"\n"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -