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

📄 clientpoint.java

📁 聊天室
💻 JAVA
字号:
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.awt.*;


public class ClientPoint extends JFrame{
  static int SERVERPORT=8088;
  static String SERVERADDRESS="10.215.215.108";
  private BufferedReader cin=null;
  private PrintWriter cout=null;
  private Socket client=null;
   public String clientname;
  private JPanel jPanel1=new JPanel();
  private JTextField jTextSendInfo=new JTextField(38);
  private JTextArea jTextGetInfo=new JTextArea(16,33);  
  public JScrollPane areaScrollPane=new JScrollPane(jTextGetInfo);  
  private Button Send=new Button("发送");
  private Button Link=new Button("连接");
  
  public ClientPoint(){  	
    super("阿杰哥聊天室^_^");    
   enableEvents(AWTEvent.WINDOW_EVENT_MASK);    
    setSize(480,465);
    jPanel1.add("South",jTextSendInfo);
    jPanel1.setBackground(new Color(222,223,222));
	jTextGetInfo.setBackground(new Color(122,150,223));
    jTextGetInfo.setFont(new java.awt.Font("Dialog", 0, 15));
    jTextGetInfo.setForeground(new Color(176, 42, 0));
    this.setResizable(false);
    Send.setBackground(Color.pink);
    Send.setForeground(Color.blue);
    Send.setBounds(new Rectangle(92, 400, 90, 37));
    Link.setBackground(Color.pink);
    Link.setForeground(Color.blue);   
    areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    areaScrollPane.setAutoscrolls(true);
   jTextSendInfo.setText("");
    jPanel1.add("North",areaScrollPane);
    jTextGetInfo.setEditable(false);
    jPanel1.add("South",Send);
    Send.setEnabled(false);
    jPanel1.add("South",Link);
    Send.addActionListener(new ActionListener()
          {public void actionPerformed(ActionEvent e){
          	if(!jTextSendInfo.getText().equals("")){
          	cout.println("["+clientname+"]:"+jTextSendInfo.getText());
          	cout.flush();          	
          	jTextSendInfo.setText("");
         	jTextSendInfo.setFocusable(true);          	
            }
            else JOptionPane.showMessageDialog(null,"阿杰哥警告:消息不能为空!!","消息对话框",JOptionPane.WARNING_MESSAGE);
            }});
    Link.addActionListener(new ActionListener()
          {public void actionPerformed(ActionEvent e){
          	if(!jTextSendInfo.getText().equals("")){
              clientname=jTextSendInfo.getText();
              connect();             
              Link.setEnabled(false);
              Send.setEnabled(true);
              jTextSendInfo.setText("");
          }
          else JOptionPane.showMessageDialog(null,"阿杰哥警告:用户名不能为空!!","消息对话框",JOptionPane.WARNING_MESSAGE);
          }});
    this.setContentPane(jPanel1);
  }
  public void connect(){
    try{
      client=new Socket(SERVERADDRESS,SERVERPORT);       
       cout=new PrintWriter(client.getOutputStream());          
         cin=new BufferedReader(
          new InputStreamReader(client.getInputStream()));
          cout.println("欢迎["+clientname+"]进入 阿杰哥聊天室");
          cout.flush();
           Receiver r=new Receiver();
          r.start();    
  }catch(Exception e){
         
     e.printStackTrace();
  }
}
protected void processWindowEvent(WindowEvent e){
     if(e.getID()==WindowEvent.WINDOW_CLOSING){
         quit();
     }
     super.processWindowEvent(e);
    }
    public static void main(String[] args){
      ClientPoint cp=new ClientPoint();
      cp.show();
      
    }

class Receiver extends Thread{	
		public void run(){
				String msg=null;
				JScrollBar sb;
				try{										
					msg=cin.readLine();					
					while(true){
							jTextGetInfo.append(msg+"\n");
							sb=areaScrollPane.getVerticalScrollBar();
							sb.setValue(sb.getMaximum()+50);
							jTextSendInfo.setEnabled(true);
							msg=cin.readLine();
						}						
					}catch(Exception e){
							Send.setEnabled(false);
						}
			}
	}
void quit(){
		try{
			cout.println("["+clientname+"]离开 阿杰哥聊天室");
			cout.flush();
			cout.println("exit");
			cout.flush();
			System.out.print("lianjieduankai");
			cin.close();
			cout.close();
			client.close();
			}catch(Exception e){}
			finally{System.exit(0);
			}
			}
}

⌨️ 快捷键说明

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