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

📄 clieframe.java

📁 客户服务机模式会话程序
💻 JAVA
字号:
package test;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import java.net.*;
import java.io.*;

public class ClieFrame extends JFrame{
	//JPanel contentPane=new JPanel(new FlowLayout());
	JPanel contentPane;
	//XYLayout xYLayout1=new XYLayout();布局管理器
	JButton jButton1;
	JLabel jLabel1;
	JTextField jTextField1;
	JButton jButton2;
	JScrollPane jScrollPane1;
	JTextArea jTextArea1;
	Socket socket1;
	InputStream is;
	OutputStream os;
	BufferedReader br;
	PrintWriter pw;
	Thread t1=null;
	public ClieFrame(){
		//启用由传递给此组件的指定事件屏蔽参数所定义的事件 
		enableEvents(AWTEvent.WINDOW_EVENT_MASK);
		try{
			jbInit();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	private void jbInit() {
		
		//contentPane=new JPanel();
		jButton1=new JButton("连接服务器");
		jLabel1=new JLabel("消息");
		jTextField1=new JTextField("Send Data:");
		jButton2=new JButton("发送");
		jScrollPane1=new JScrollPane();
		jTextArea1=new JTextArea("Display Data:");				
		contentPane=(JPanel)this.getContentPane();
		contentPane.setLayout(new BorderLayout(50,40));
		//对按钮添加事件侦听器
		jButton1.addActionListener(new clieFrame_jButton1_actionAdapter(this));
		jButton2.addActionListener(new clieFrame_jButton2_actionAdapter(this));
		//contentPane.setLayout(xYLayout1);

		this.setVisible(true);
		//设定窗口大小
		this.setSize(new Dimension(800,600));
		this.setTitle("客户端");
		//设置窗口的边界
		contentPane.setBorder(BorderFactory.createLoweredBevelBorder());

		JPanel p1=new JPanel(new FlowLayout(FlowLayout.CENTER,100,20));
		//jButton1.setBounds(50, 50, 100, 50);
		jButton1.setPreferredSize(new Dimension(100,50));
		p1.add(jButton1);
		//contentPane.add(jButton1);		
		//jButton2.setBounds(600, 50, 100, 50);
		jButton2.setPreferredSize(new Dimension(100,50));
		p1.add(jButton2);
		//contentPane.add(jButton2);
		jTextField1.setPreferredSize(new Dimension(600,50));
		//contentPane.add(jTextField1,BorderLayout.SOUTH);
		//p1.add(jTextField1);
		
		contentPane.add(p1,BorderLayout.NORTH);
		contentPane.add(jTextField1, BorderLayout.CENTER);
		jTextArea1.setPreferredSize(new Dimension(600,300));
		contentPane.add(jScrollPane1,BorderLayout.SOUTH);
		//jLabel1.setBounds(50, 150, 100, 50);
		//contentPane.add(jLabel1);
		jScrollPane1.getViewport().add(jTextArea1, null);
		//this.add(contentPane, 0);
	}
	protected void processWindowEvent(WindowEvent e){
		super.processWindowEvent(e);
		//关闭窗口
		if(e.getID()==WindowEvent.WINDOW_CLOSING){
			System.exit(0);
		}
	}
	//连接服务器按钮触发函数
	public void jButton1_actionPerformed(ActionEvent e) {
		try{
			socket1=new Socket(InetAddress.getLocalHost(),2000);
			JOptionPane.showMessageDialog(this, "连接成功");
		}catch(Exception e1){
			JOptionPane.showMessageDialog(this, "error:"+e1.toString());
		}
		try{
			jButton1.setEnabled(false);
			is=socket1.getInputStream();
			os=socket1.getOutputStream();
			br=new BufferedReader(new InputStreamReader(is));
			pw=new PrintWriter(os);
			t1=new Thread(new Receiver());
			t1.start();
		}catch(Exception e1){
			//显示错误提示信息
			JOptionPane.showMessageDialog(this, "error:"+e1.toString());
		}
	}
	//发送按钮触发函数
	public void jButton2_actionPerformed(ActionEvent e) {
		String str="";
		if(socket1!=null){
			try{
				str=jTextField1.getText()+"\n";
				jTextArea1.append("To Server:"+str);
				pw.write(str);
				pw.flush();
				if(str.equals("end")){
					is.close();
					os.close();
					br.close();
					pw.close();
					socket1.close();
					jButton1.setEnabled(true);
				}
				jTextField1.setText("");
			}catch(Exception e1){
				JOptionPane.showMessageDialog(this, "error:"+e1.toString());
			}
		}
	}
	//接收数据线程类
	public class Receiver implements Runnable{
		public Receiver(){}
		public void run(){
			String str="";
			while(true){
				try{
					str=br.readLine();
					if(str!=null)
						jTextArea1.append("From Server:"+str+"\n");
				}catch(Exception e){
				}
			}
		}
	}
	public static void main(String[] args){
		ClieFrame user=new ClieFrame();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -