(다른팀원이 만든)
만들어져잇는 서버와 연결하는거 포기하고
(배웟는데도 1도모르겟음 이해안됨 대가리 빠가임)
내장 기능이라도 구현할라햇는데
서버랑 연결이 안되니까 확인할 방법도없고 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
아니 (고정 ID , PW 값이라 )
로그인 해서 들어오는게 되는데
로그인gui랑
ClientHandler 2개로되어있는거같은데..
로그인하면 그 아이디값을 채팅으로 가저오고싶은데
일단 서버연동이 안되어잇으니 하나도 확인안됨
자체적으로 간단히라도 만들라고햇으나 지금잇는 대기실 gui 랑 안맞고요...
그냥 꼬이고꼬여서 손 놧습니다.
물어가봐면서 햇엇는데도 이해못해서 주말내내 끙끙거렷는데
그냥 여기에 소질이없는건지
미치겟어요
package main;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JFrame;
import dataSet.*;
import gui.*;
import network_Client.*;
public class ClientHandler extends JFrame implements ActionListener{
private MsgConnector msgClient;
private DataPacketManager packetMng;
private Drawboard drawBoard;
private LobbyGui lobby; // 로비
private LoginPage loginPage;
public ClientHandler(){
packetMng = new DataPacketManager();
MsgReceiver msgReceiver = new MsgReceiver();
msgReceiver.start();
}
class MsgReceiver extends Thread {
public MsgReceiver() {
msgClient = new MsgConnector();
}
public void run() {
while (true) {
byte[] inPacket = msgClient.readMsg();
clarifyMsg(inPacket);
}
}
private void clarifyMsg(byte[] inPacket) {
int protocol = inPacket[0];
switch (protocol) {
case ProtocolSet.ID_REQ_LOGIN:
showLoginPage();
break;
case ProtocolSet.ID_RESULT_LOGIN:
if(inPacket[1] == ConstantSet.ID_LOGIN_SUCCESS){
disposeLoginPage();
showLobby();
packetMng.setPacketSize(ProtocolSet.GAME_REQ_CURRENT_TURN);
msgClient.sendMessage(packetMng.getPacket());
}
break;
case ProtocolSet.GAME_NOW_TURN:
if(inPacket[1] == ConstantSet.YOUR_TURN){
setDrawBtEnable();
}
break;
case ProtocolSet.GAME_REQ_PAINT_CLEAR:
clearCanvas();
break;
}
}
}
private void showLoginPage(){
loginPage = new LoginPage(this);
loginPage.setVisible(true);
}
private void disposeLoginPage(){
loginPage.dispose();
showLobby(); //여기에 로비호출 추가
}
private void showLobby(){
lobby = new LobbyGui(this);
lobby.setVisible(true); //-------
}
private void setDrawBtEnable(){
drawBoard.setBoardEnable();
}
private void clearCanvas(){
drawBoard.clearCanvas();
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if(command.equals("전체 지우기")){
clearCanvas();
packetMng.setPacketSize(ProtocolSet.GAME_REQ_PAINT_CLEAR);
msgClient.sendMessage(packetMng.getPacket());
}
else if(command.equals("로그인")){
String ID = loginPage.getId();
String PW = loginPage.getPw();
packetMng.setPacketSize(ProtocolSet.ID_REQ_ACCEPT_LOGIN);
byte[] outPacket = packetMng.getPacket();
byte[] id = ID.trim().getBytes();
byte[] pw = PW.trim().getBytes();
System.arraycopy(id, 0, outPacket, ProtocolSet.LEN_PROTOCAL, id.length);
System.arraycopy(pw, 0, outPacket, ProtocolSet.LEN_PROTOCAL + ProtocolSet.LEN_LOGIN_ID,
pw.length);
msgClient.sendMessage(outPacket);
}
}
}