728x90

BorderLayout

동, 서, 남, 북, 중간으로위치를 지정할 수 있는 레이아웃.

 


FlowLayout

부착되는 순서대로 왼쪽에서 오른쪽으로 컴포넌트를 배치하며, 오른쪽에 더 이상 배치할 공간이 없으면 아래로 내려와서 다시 왼쪽으로 오른쪽으로 배치한다.

 

 


GridLayout

-컨테이너의 공간을 응용프로그램에서 설정한 동일한 크기의 2차원 격자로 나누고,
컴포넌트가 삽입되는 순서대로 좌에서 우로, 다시 위에서 아래로 배치한다.
컴포넌트의 크기는 셀의 크기와 동일하게 설정한다.

728x90

'JAVA' 카테고리의 다른 글

Chat 프로그램  (0) 2020.10.26
10/26 수업내용 (DB)  (0) 2020.10.26
10/23 수업내용  (0) 2020.10.23
10/22 수업내용  (0) 2020.10.22
그림판  (0) 2020.10.20
728x90

 

 


정리할거

borderLayout, gridLayout, 레이아웃 관련 정리하기

밑에 catch부분 설명 -필요


url따오고
길 만들고

데이터를 한줄씩 읽어와서 line에 넣어야 하니까
페이지 소스를 전부다 돌기 위해서 반복문 사용
페이지 소스를 한줄씩 읽어오는데 더이상 읽고 line에 복사할게 없으면 null이면 -1을 출력해서 반복문 벗어나기

단어를 가져오는데 소문자, 대문자 가 있으니까 
toLowerCase()를 통해 다 소문자로 통일해서 저장한다.
indexOf()는 찾는 글자가 더이상 없으면 -1을 리턴한다.
이걸 이용

나머지 설명은 indexOf() 글 찾으면 있음


이렇게해서 페이지안에 내가 원하는 문자가 몇개있는지 뽑아올 수 있다.

채팅창

 

입력창과 보내기버튼을 아직수정 안했다
프레임창크기 변경에 따라 버튼은 그대로있고 
입력창은 변하게 만들어야 한다.

 
밑에 패널 부분만 레이아웃을 설정해주면된다.
BorderLayout()사용

이러면 윈도우창은 완성
 
임의의 메소드를 하나더 만든다.
(ChatClient는 접어놨다)
자동으로 팝업창이 실행된다.
다르게 입력해봤다

서버ip값을 강제로 입력해놨다
코드를 추가하고
윗사진 처럼 ip를 지나
닉네임을 입력할 수 있게 nickName을 만든다.
소켓을 만들기 위해 필드를 더 추가한다.

1번사진 소켓은 내 IP주소






2번사진은 내 IP주소가 아니라 다른 IP를 넣어준거

 

데이터가 오가는 그림 설명

오류는 try catch로 잡았다.

catch부분 설명 -
서버에 닉네임을 보내준다.
채팅은 순서상관없이 너나 나나 다같이 보낼수 있어야 한다.
그러면 스레드르 사용해야 한다,

그리고 보내기 버튼도 활성해야한다.
ActionListener, Runnable를 implement하고
스레드를 생성하자

스레드랑 이벤트는  service() 메소드에 생성했다.
 
 
if문의 내용이 내가 입력칸에 quit를 치면 
actionPerformed를통해 화면에 어찌어찌 출력하게 되는데
사진에 있는 부분이 그걸 읽어들이면
종료를 해버린다.

글이 나와도 스크롤이 안따라다닌다.
저 코드를 넣으면 스크롤이 자동으로 내려간다.
원래는 x버튼 누르면 서버에 에러가 나는데
빨간 부분을 작성하면 x를 누르고 나가도 에러대신 저 문구를 출력하고 나간다.


서버만들기

서버는 스레드가 될수 없고 io가 스레드가 되어야 한다.
여기서는 ChatServer는 서버가 되고 CHatHandler가 스레드가 되어야 한다.

ServerSocket 생성

 

 
 
스레드 생성

필드에 보면 소켓을 잡았는데
이렇게하면 클라이언트 하나씩 소켓을 만들어 줄수 없다.
소켓은 ChatServer()안에 넣어서
개별로 만들어줘야 한다.
완성본

핸들러

 
스레드 부분 만들고
broadcast 부분 따로 만들기????"?????
채팅입력부분
나간사람한테는 quit를 보내고
남은 사람한테는 oo님이 나갔습니다를 보내야 한다.
일단 exit가 아니라 break를 걸어 while문을 벗어나게 만든다.
quit를 입력하고 나간사람에게는 quit를 보내고

그외에 사람들에게는 다른 메세지 보내기

list에 클라이언트들이 배열로 저장되어 있으니까
한명 제거하기
 
728x90

'JAVA' 카테고리의 다른 글

10/26 수업내용 (DB)  (0) 2020.10.26
Frame - BorderLayout(), FlowLayout(), GridLayout()  (0) 2020.10.23
10/22 수업내용  (0) 2020.10.22
그림판  (0) 2020.10.20
10/19 수업  (0) 2020.10.19

+ Recent posts