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

📄 clientframe.java

📁 一个简单的聊天程序
💻 JAVA
字号:
package chatclient2;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class clientFrame  extends JFrame implements ActionListener,Runnable{
  JTextField input=new JTextField(20);
  JTextArea area=new JTextArea(20,20);
  JTextField connection=new JTextField(20);
  JButton btn=new JButton("connect");
  JPanel panel=new JPanel();
  Socket socket=null;
  DataInputStream reader=null;
  PrintStream writer=null;
 public  boolean connected=false;
  public clientFrame() {
    JPanel contentPane=(JPanel)this.getContentPane();
    contentPane.add(panel,BorderLayout.NORTH);
    panel.add(connection);
    panel.add(btn);
    btn.addActionListener(this);
    input.addActionListener(this);
    contentPane.add(area,BorderLayout.CENTER);
    contentPane.add(input,BorderLayout.SOUTH);
    this.pack();
    /////////////
    this.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent we){
        try {
          if(socket!=null)
             socket.close();
             writer.close();
             System.exit(0);
        }catch(Exception e){
          JOptionPane.showMessageDialog(null,"abnormally stopping");
        }
      }
    });

////////////
}
  public static void main(String[] args) {
    clientFrame client = new clientFrame();
    client.setVisible(true);



  }
  public void actionPerformed(ActionEvent e){
    if(e.getSource()==btn){
      try{
        InetAddress host = InetAddress.getByName(connection.getText());
        socket = new Socket(host, 4567);
        reader=new DataInputStream(socket.getInputStream());
        writer=new PrintStream(socket.getOutputStream());
        connected=true;
        Thread thread=new Thread(this);
        thread.start();
      }catch(Exception se){
        JOptionPane.showMessageDialog(null,"cannot connect");
        socket=null;
        reader=null;
        writer=null;
      }
      connection.setText("");
    }
    if(e.getSource()==input){
       if(writer!=null){
         writer.println(input.getText());
         getInfo(input.getText());

       }
       input.setText("");

    }
  }

  ///////////////
  public void getInfo(String str){
   StringBuffer temp=new StringBuffer(str+"\n");
   temp.append(area.getText());
   area.setText(temp.toString());

}
 ////////////
  public void run(){
    try{
      while (true) {
       // System.out.println("listenServer begin");
        if(connected)
        {String temp = reader.readLine();
        getInfo(temp);}
        //System.out.println("listen server have read a ");


      }
    }catch(Exception e){
      JOptionPane.showMessageDialog(null,"server closed");
    }


  }

}

⌨️ 快捷键说明

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