가 지금 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("채팅프로그램");
}
}
코드는 알겠는데 질문을 모르겠다