⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cjf.java

📁 一个简单的点对点式的聊天
💻 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 + -