수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

수다님들 제발 도와주세요 ㅠㅠㅠ

봉봉

2026.01.15

public class MultiChatClient implements ActionListener, Runnable {
private String ip;
private String id;
private Socket socket;
private BufferedReader inMsg = null;
private PrintWriter outMsg = null;
// 로그인 패널
private JPanel loginPanel;
// 로그인 버튼
private JButton loginButton;
// 대화명 라벨
private JLabel label1;
// 대화명 입력 텍스트 필드
private JTextField idInput;
// 로그아웃 패널 구성
private JPanel logoutPanel;
// 대화명 출력 라벨
private JLabel label2;
// 로그아웃 버튼
private JButton logoutButton;

// 입력 패널 구성
private JPanel msgPanel;
// 메시지 입력 텍스트 필드
private JTextField msgInput;
// 종료 버튼
private JButton exitButton;

// 메인 윈도우
private JFrame jframe;
// 채팅 내용 출력 창
private JTextArea msgOut;

// 카드 레이아웃 관련
private Container tab;
private CardLayout clayout;
private Thread thread;
// 상태 플러그
boolean status;
public MultiChatClient(String ip) {
this.ip = ip;
// 로그인 패널 구성
loginPanel = new JPanel();
// 레이아웃 설정
loginPanel.setLayout(new BorderLayout());
idInput = new JTextField(15);
loginButton = new JButton(로그인);
// 이벤트 리스너 등록
loginButton.addActionListener(this);
label1 = new JLabel(대화명);
// 패널에 위젯 구성
loginPanel.add(label1, BorderLayout. WEST);
loginPanel.add(idInput, BorderLayout. CENTER);
loginPanel.add(loginButton, BorderLayout. EAST);
// 로그아웃 패널 구성
logoutPanel = new JPanel();
// 레이아웃 설정
logoutPanel.setLayout(new BorderLayout());
label2 = new JLabel();
logoutButton = new JButton(로그아웃);
// 이벤트 리스너 등록
logoutButton.addActionListener(this);
// 패널에 위젯 구성
loginPanel.add(label1, BorderLayout.WEST);
loginPanel.add(idInput, BorderLayout.CENTER);
loginPanel.add(loginButton, BorderLayout.EAST);
// 로그아웃 패널 구성
logoutPanel = new JPanel();
// 레이아웃 설정
logoutPanel.setLayout(new BorderLayout());
label2 = new JLabel();
logoutButton = new JButton(로그아웃);
// 이벤트 리스너 등록
logoutButton.addActionListener(this);
// 패널에 위젯 구성
logoutPanel.add(label2, BorderLayout.CENTER);
logoutPanel.add(logoutButton, BorderLayout.EAST);

// 입력 패널 구성
msgPanel = new JPanel();
// 레이아웃 설정
msgPanel.setLayout(new BorderLayout());
msgInput = new JTextField(30);
// 이벤트 리스너 등록
msgInput.addActionListener(this);
exitButton = new JButton(종료);
exitButton.addActionListener(this);
// 패널에 위젯 구성
msgPanel.add(msgInput, BorderLayout.CENTER);
msgPanel.add(exitButton, BorderLayout.EAST);

// 로그인/로그아웃 패널 선택을 위한 카드 레이아웃 패널
tab = new JPanel();
clayout = new CardLayout();
tab.setLayout(clayout);
tab.add(loginPanel, login);
tab.add(loginPanel, logout);

// 메인 프레임 구성
jframe = new JFrame(::채팅::);
msgOut = new JTextArea(, 10, 30);
// JTextArea의 내용을 수정하지 못하게함. 즉, 출력전용
msgOut.setEditable(false);
// 수직 스크롤바는 항상 나타내고, 수평 스크롤바는 필요할때만 나오게한다.
JScrollPane jsp = new JScrollPane(msgOut, JScrollPane);
jframe.add(tab, BorderLayout.NORTH);
jframe.add(jsp, BorderLayout.CENTER);
jframe.add(msgPanel, BorderLayout.SOUTH);
// 로그인 패널을 우선 표시
clayout.show(tab, login);
// 프레임 크기 자동 설정
jframe.pack();
// 프레임 크기 조정 불가 설정
jframe.setResizable(false);
// 프레임 표시
jframe.setVisible(true);

}
public void connectServer() {
try {
// 소켓 생성
socket = new Socket(ip, 8888);
System.out.println([Client]Server 연결 성공!!);

// 입출력 스트림 생성
inMsg = new BufferedReader(new InputStreamReader(socket.getInputStream()));
outMsg = new PrintWriter(socket.getOutputStream(), true);

// 서버에 로그인 메시지 전달
outMsg.println(id+/+login);

// 메시지 수신을 위한 스레드 생성
thread = new Thread(this);
thread.start();
} catch(Exception e) {
// e.printStackTrace();
System.out.println([MultiChatClient] connectServer() Exception 발생!!);
}
}
// 이벤트 처리
public void actionPerformed(ActionEvent arg0) {
Object obj = arg0.getSource();

// 종료 버튼 처리
if(obj == exitButton) {
&nbnbsp; System.exit(0);
} else if(obj == loginButton) {
id = idInput.getText();

label2.setText(대화명 : + id);
clayout.show(tab, logout);
connectServer();
} else if(obj == logoutButton) {
// 로그아웃 메시지 전송
outMsg.println(id + / + logout);
// 대화 창 클리어
msgOut.setText();
// 로그인 패널로 전환
clayout.show(tab, login);
outMsg.close();
try {
inMsg.close();
socket.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
------------------------------?????????????--------------------

public void run() {
// 수신 메시지를 처리하는 변수
String msg;
String[] rmsg;

status = true;

while(status) {
try {
// 메시지 수신과 파싱
msg = inMsg.readLine();
rmsg = msg.split(/);

// JTextArea에 수신된 메시지 추가
msgOut.append(rmsg[0] + + rmsg[1] + \n);

// 커서를 현재 대화 메시지에 표시
msgOut.setCaretPosition(msgOut.getDocument().getLength());
} catch(IOException e) {
// e.printStackTrace();
status = false;
}
}
System.out.println([MultiChatClient] + thread.getName() + 종료됨);
}
public static void main(String[]args) {
MultiChatClient mcc = new MultiChatClient(127.0.0.1);
}

여기까지 했는데 저 물음표에 뭐가 또 들어가야하는지쫌 써주실분ㅠㅠㅠㅠㅠㅠ
아 머리빠질것같아용

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

번호 제 목 글쓴이 날짜
2752024 소숫점 뺄셈 !! ㅠㅜ 초롬 2026-10-20
2751970 자바 게임 만들려는데 부탁드립니다 (1) 라온제나 2026-10-19
2751908 자바스크립트 처리속도를 체크할 수 있는 방법 있나요? (1) 테이 2026-10-19
2751822 그누보드 아이프레임으로 구현했는데 제목 클릭해서 들어가면 푸터가 동동...떠다녀요 내꺼하자 2026-10-18
2751790 자바 그래픽 관련을 공부하고 싶은데요.. 어디 좋은 사이트나 책 없을까요?? (1) 큰재 2026-10-18
2751733 CTF가머죠? (5) 두동 2026-10-17
2751709 배열부분 궁금한 부분이있습니다. 딸기우유 2026-10-17
2751677 포인터 책을 보다가,,, (2) 동백 2026-10-17
2751648 익스플로 버전에 따라서 생기는 공백.. (1) 모아 2026-10-17
2751623 DEL 태그의에서 선굵기 및 컬러지정이 가능한가 해서요~ (4) 비치나 2026-10-16
2751573 테마 업로드 에러.. (1) 꽃 2026-10-16
2751548 수학? 물리?? (3) 찬늘 2026-10-16
2751461 상단네비 fixed ie6 핵 해결방안이 있을까요? 맑다 2026-10-15
2751436 레이아웃을 잡고 코딩을 하는데 드림위버에서의 결과와 IE에서 결과가 다르게 나오네요. (3) 키클 2026-10-15
2751403 형들좀도와주세요string compression (1) 알렉산더 2026-10-14
2751349 링크 다운로드하기 팬지 2026-10-14
2751295 c++한번도 손않댄 사람이... 날위해 2026-10-13
2751267 플래시8 사용에서 플레이어 만들었는데요 (1) 블1랙캣 2026-10-13
2751182 회원가입 파랑새 2026-10-12
2751152 소셜 플러그인 문제입니다. 얀 2026-10-12
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com