가 지금 swing이랑 net 관련해서 배우고 있는 중이거등?

근데 서버랑 클라랑 연동해서

서버 TextFiled 에서 보낸 내용을 클라 TextArea에 넣는 기초적인걸 짜는중인데 코드좀 봐봐

난 아무리해도 이해가 안됨

대충 TextFiled 에서 내용을 소켓에 넣고 그걸 TextArea에 넣으면 안되는걸까?

 

 

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;

 

class MyFrame_01 extends JFrame implements ActionListener,Runnable{

 private Container c>  private TextArea ta = new TextArea();
 private BorderLayout bl = new BorderLayout();
 private TextField txf = new TextField();
 private JPanel jp = new JPanel();
 private JLabel lb = new JLabel("보내실 말 : ",Label.RIGHT);
 private BorderLayout bl2 = new BorderLayout();
 private JPanel jp2 = new JPanel();
 private JPanel jp3 = new JPanel();
 private JPanel jp4 = new JPanel();
 private JPanel jp5 = new JPanel();
 private JButton jbt = new JButton("전송");
 String str[];
 ServerSocket ss;
 Socket soc;
 PrintWriter pw;
 BufferedReader br;
 
 
 public void init(){
  c>  con.setLayout(bl);
  con.add("Center",ta);
  ta.setEnabled(false);
  con.add("South",jp);
  con.add("East",jp2);
  con.add("West",jp3);
  con.add("North",jp4);
  jp.setLayout(bl2);
  jp.add("West",lb);
  jp.add("Center",txf);
  jp.add("East",jbt);
  
 }
 public void net(){
  try{
   ss = new ServerSocket(12345);
   soc = ss.accept();
   Thread th = new Thread(this);
   th.start();
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 
 public void start(){
  net();
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  jbt.addActionListener(this);
 }
 
 public void run(){
  try{
   br = new BufferedReader(new InputStreamReader(soc.getInputStream()));
   String clientMsg = null;
   while(true){
    clientMsg = br.readLine();
    ta.setText("From server==>" + clientMsg);
   }
  }catch(Exception e){
   e.printStackTrace();
  }
 }
 
 
 public MyFrame_01(String title){
  super(title);
  this.init();
  this.start();
  super.setSize(400,600);
  Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  int xpos = (int)(screen.getWidth()/2-super.getWidth()/2);
  int ypos = (int)(screen.getHeight()/2-super.getHeight()/2);
  super.setLocation(xpos,ypos);
  super.setResizable(false);
  super.setVisible(true);
  
 }
 public void cho(){
  
 }

 public void actionPerformed(ActionEvent e) {
  if(e.getSource()==jbt){
   try{
    pw = new PrintWriter(soc.getOutputStream(), true);
    
    String msg = "";
    while((msg=txf.getText())!= ""){
     pw.println(msg);
     txf.setText("");
    }
   }catch(Exception ex){
    ex.printStackTrace();
   }
   
  }
 }
}

public class Exam_01 {
 public static void main(String[] args){
  MyFrame_01 mf = new MyFrame_01("채팅프로그램");
 }

}