현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 자료 - 애플릿 쇼핑몰 리뷰 코드
애플릿 쇼핑몰 리뷰 코드
Java.applet.applet 을 가져옵니다.

Java.awt. *;

Java.io. *;

Java.net 을 가져옵니다. *;

공용 클래스 TicTacToeclient 확장 애플릿 Runnable 구현

{//클래스1

텍스트 필드 id;

패널 보드 패널, 패널 2

사각형 [] [], currentsquare

콘센트 연결

DataInputStream 입력;

데이터 출력 스트림 출력;

스레드 출력 스레드

Char mymark

텍스트 영역 표시

공용 void init ()

{

Setlayout (new borderlayout ());

Display = newtextarea (4,30);

Display.seteditable (false);

추가 ("남쪽", 표시);

보드 패널 = 새 패널 ();

Boardpanel.setbackground (color.cyan);

Boardpanel.setlayout (new gridlayout (3, 3, 0, 0));

판 = 새 상자 [3] [3];

For (introw = 0; 로우< 보드 길이; Row++)

For (intcol = 0; Col< 판자 [행]. 길이; Col++)

{

Board[row][col]= 새 상자 ();

Repaint ();

Boardpanel.add (board [row] [col]);

}

Id = newtextfield ();

Id.seteditable (false);

추가 (북쪽, id);

Panel2 = newpanel ();

Panel 2.add (보드 패널);

Add ("중심", 패널 2);

}

///////////종료

공용 void 시작 ()

{

시도 {

Connection = new 소켓 (inetaddress.getlocalhost (), 5000);

Input = newdata inputstream (connection.getinputstream ());

Output = newdata output stream (connection.getoutputstream ());

}

Catch(IOException e){) {

//e. printstacktrace ();

}

OutputThread = 새 스레드 (this);

Outputthread.start ();

}

///////////종료

공용 부울 mouseUP (이벤트 e, int x, int y)

{

For (introw = 0; 로우< 보드 길이; Row++)

{

For (intcol = 0; Col< 판자 [행]. 길이; Col++)

시도 {

If (예: target==board[row][col])

{

Current square = board [row] [col];

Output.writeint (row * 3+col);

}

}

Catch(IOException ie){

//ie.printstacktrace ();

}

}

True 를 반환합니다

}

///////////종료

공용 유효하지 않은 실행 ()

{

시도 {

Mymark = input.readchar ();

Id.setText ("재생 시작 \" "+내 마크+"\ ");

}

Catch(IOException e){) {

E. printstacktrace ();

}

While (참)

{

시도 {

Strings = input.readutf ();

ProcessMessage

}

Catch(IOException e){) {

//e. printstacktrace ();

}

}

}

///////////종료

공용 void processMessage (문자열 s)

{

If(s 같음 ("효과적인 이동"))

{

Display.appendText ("유효한 이동, 잠시만 기다려 주십시오. \ n");

Currentsquare.setmark (mymark);

Currentsquare.repaint ();

}

Else if(s.equals ("잘못된 이동, 재시도"))

{

Display.appendtext (s+"\ n");

}

Else if(s.equals ("상대 이동"))

{

시도 {

Intloc = input.readint ();

완료:

For (introw = 0; 로우< 보드 길이; Row++)

For (intcol = 0; Col< 판자 [행]. 길이; Col++)

If(row*3+col==loc)

{

판 [행] [열]. SetMark(mymark=='x'? O':' x');

판 [행] [열]. Repaint ();

휴식 완료

}

Display.appendText ("수동입니다. 네 차례 야 \ n ");

}

Catch(IOException e){) {

E. printstacktrace ();

}

}

기타

{

Display.appendtext (s+"\ n");

}

}

}//class 1.end

//////////////////////////////

클래스 사각형 확장 캔버스

{//class2

문자 표시

공공광장 ()

{

크기 조정 (30,30);

}

///////////종료

공용 null 설정 태그 (char c)

{

마크 = c;

}

///////////종료

공용 빈 페인트 (그래픽 g)

{

G. drawrect (0,0,29,29);

G. drawstring (string.valueof (mark), 1 1, 20);

}

}//class2.end

///& lt;; Applet code = "tictactoeclient.class" width = 275 height = 300 > & lt/애플릿 >

서버측:

Java.awt. *;

Java.net 을 가져옵니다. *;

Java.io. *;

공용 클래스 TicTacToeServer 확장 프레임워크

{//클래스1

개인 바이트 보드 [];

개인 부울 x 이동

개인 TextArea 출력;

개인 게이머 [];

전용 서버 소켓 서버

Private int numberofplayers

개인 int currentplayer

공용 TicTacToeServer ()

{

슈퍼 ("3 개의 하위 체스 서버");

Board = 새 바이트 [9];

XMove = true

플레이어 = 신규 플레이어 [2];

Currentplayer = 0;

시도 {

Server=new ServerSocket(5000 (5000,2);

}

Catch(IOException e){) {

//e. printstackrace ();

System.exit (1);

}

Output = newtextarea ();

Output.setbackground (color.yellow);

Add (중심, 출력);

크기 조정 (300,300);

쇼 ();

도구 키트 TP = 도구 키트.getdefaulttoolkit ();

Imagelogo = tp.getimage ("1.gif");

섹션 이미지 (로고);

SetResizable(false););

}

///////////종료

Public void execute ()

{

For(int I = 0;; 나< 선수. 길이 I++)

{

시도 {

Players[I]= 새 플레이어 (server.accept (), this, I);

플레이어 [나]. 시작 ();

++number of players;

}

Catch(IOException e){) {

//e. printstackrace ();

System.exit (1);

}

}

}

///////////종료

Public int getNumberOfplayers ()

{

Numberofplayers 를 반환합니다

}

///////////종료

공용 null 표시 (문자열 s)

{

Output.appendtext (s+"\ n");

}

//////////끝

공용 부울 validMove(int loc, int player)

{

부울 moveDone = false

그리고 (플레이어! = 현재 플레이어)

{

시도 {

Wait ();

}

Catch (interrupted exception e) {//not

}

}

If (등가 (loc))

{

Board [loc] = (byte) (현재 플레이어 = = 0? X':' o');

Currentplayer =++currentplayer% 2;

플레이어 [현재 플레이어]. 기타 player moved (loc);

Notify ();

True 를 반환합니다

}

기타

False 를 반환합니다

}

///////////종료

공용 부울 등적 (int loc)

{

If (board [loc] = =' x' | | board [loc] = =' o')

True 를 반환합니다

기타

False 를 반환합니다

}

///////////종료

공용 부울 handleEvent (이벤트 이벤트)

{

If (이벤트.id = = 이벤트). 창 _ 제거)

{

Hide ();

Dispose ();

For(int I = 0;; 나< 선수. 길이 I++)

플레이어 [나]. Stop ();

System.exit (0);

}

Super.handleEvent (이벤트) 를 반환합니다.

}

///////////종료

공용 부울 gameOver ()

{

False 를 반환합니다

}

///////////종료

공용 정적 void main(String args[])

{

Tictacto eserver game = new TIC tacto eserver ();

Game.execute ();

}

}//class 1.end

//////////////////////////////////

클래스 플레이어 확장 스레드

{//class2

콘센트 연결

DataInputStream 입력;

데이터 출력 스트림 출력;

TicTacToeServer 컨트롤;

Int 수;

문자 표시

공용 플레이어 (소켓 s, TicTacToeServer t, int num)

{

마크 = (num = = 0? X':' o');

Connection = s;;

시도 {

Input = newdata inputstream (connection.getinputstream ());

Output = newdata output stream (connection.getoutputstream ());

}

Catch(IOException e){) {

//e. printstacktrale ();

System.exit (1);

}

컨트롤 = t;;

Number = num

}

///////////종료

Public void other player moved (intloc)

{

시도 {

Output.writeutf ("oppo net moved");

Output.writeint (loc);

}

Catch(IOException e){//not

}

}

///////////종료

공용 유효하지 않은 실행 ()

{

부울 done = false

시도 {

Control.display ("player"+(number = = 0? X': 'o')+ "로그인!" );

Output.writechar (마크);

Output.writeutf ("player"+(number = = 0? "엑스 착륙! \n": "o 로그인하려면 잠시 기다려 주십시오! \ n ")););

If (control.getnumberofplayers () < 2) 을 참조하십시오

{

Output.writeUTF ("다른 플레이어가 로그인할 때까지 기다려 주세요!" " );

While (control.getnumberofplayers () < 2);

Output.writeUTF ("다른 플레이어가 로그인했습니다! 이제 체스를 할 수 있습니다! );

}

그리고 (! 완료)

{

Intlocation = input.readint ();

If (컨트롤. validmove (위치, 번호))

{

Control.display ("loc"+location);

Output.writeUTF("Valic move. "" );

}

기타

Output.writeUTF ("잘못된 이동, 재시도");

If (컨트롤. gameover ())

{

Done = true

}

Connection.close ();

}

}

Catch(IOException e){) {

E. printstacktrace ();

System.exit (1);

}

}

}//class.end