목록프로그래밍 코드 (16)
쨍쨍
표준입력장치 ( 입력 관련 ) Java 표준 출력 장치 ( 출력 관련 ) System.in Scanner BufferedReader System.out System.err 파일 ( 파일 입력 관련 ) Java 파일 ( 파일 출력 관련 ) FileInputStream BufferedReader FileReader FileOutputStream BufferedWriter FileWriter 스트림 └ 데이터를 송수신하기 위한 통로의 개념으로서 입력 혹은 출력, 한쪽 방향으로만 진행. 즉, 연결통로이다. 스트림은 바이트 스트림과 문자 스트림으로 나뉜다. 바이트 스트림은 1바이트 단위로 처리하고, 문자 스트림은 2바이트 단위로 처리한다. 바이트스트림 문자스트림 FileInputStream FileOutputSt..

클릭 이벤트를 사용하는 방법 ① 익명클래스 생성 ) 쉽게 말하자면 익명 클래스 생성으로 리스너를 구현하여 등록하는 방법이다. 방법 public void InitializeView() { btnred = (Button)findViewById(R.id.btn1); btnblue = (Button)findViewById(R.id.btn2); btngreen = (Button)findViewById(R.id.btn3); textView = (TextView)findViewById(R.id.textView); } InitializeView()코드를 사용해 각 뷰 위젯의 참조를 얻어온 후 public void SetListener() { btnred.setOnClickListener(new View.OnClickL..

뷰 바인딩(View Binding) 쉽게 말해 findViewById를 통해 하나하나 뷰를 찾지 않고, 뷰와 상호작용하는 코드를 쉽게 작성할 수 있다. findViewById findViewById를 사용하면 되는데 굳이 ViewBinding을 사용해야할까? 뷰 바인딩을 사용하지 않았을 때는 findViewById를 사용해 레이아웃에서 생성한 위젯(버튼, 텍스트 등)을 메인코드에서 하나하나 findViewById()을 사용해 선언해줘야한다. 위 사진에서는 findViewById로 선언해줘도 복잡하지 않은데 findViewById를 써도 되지 않을까? 라고 생각할 수 있지만 지금은 위젯이 3개이기 때문에 findViewById로 선언해줘도 코드가 길어지고 복잡해지지 않는 것이다. 만약, 위젯이 100개라면..

레이아웃 이름 설명 제약 레이아웃 제약 조건을 사용해 화면을 구성하는 방법으로 안드로이드 스튜디오에서 자동으로 설정하는 디폴트 레이아웃 리니어 레이아웃 창고 안에 박스를 쌓을 때 아래에서 위로 쌓는 것 처럼 뷰가 차지하는 영역을 박스라고 보고 한 쪽 방향으로 차례대로 뷰를 추가하여 화면을 구성하는 방법으로 뷰가 차지할 수 있는 사각형 영역을 할당 상대 레이아웃 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성하는 방법이지만 제약 레이아웃을 사용하게 되면서 상대 레이아웃은 권장하지 않음 프레임 레이아웃 가장 상위에 있는 하나의 뷰 또는 뷰그룹만 보여주는 방법으로 여러개의 뷰가 들어가면 중첩하여 쌓게 됨 가장 단순하지만 여러 개의 뷰를 중첩한 후 각 뷰를 전환하여 보여주는 방식으로 자주 사용 테이블 레..

[ 서버 ]main.javaimport java.io.IOException;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;public class Main { public static ArrayList OutputList; public static void main(String[] args) { OutputList = new ArrayList(); System.out.println("서버가 시작되었습니다. 클라이언트의 연결 요청을 기다리고 있습니다..."); try { ServerSocket ser..

[ 서버 코드 ] static List list = collections.synchronizedlist(new ArrayList()); 이때 static을 붙이는 이유는 static 없이 그냥 list를 선언하게 되면 새로운 클라이언트가 들어올 때마다 새로운 list가 생기기 때문이다. 내가 원하는대로 채팅방에 들어온 인원의 정보를 한 list에 담기 위해서는 static을 붙여서 list를 선언해줘야합니다. socket = serverSocket.accept(); serverSocket 객체를 생성하여 클라이언트의 연결 요청을 대기한 후 클라이언트가 연결 요청을 보내면 accept() 메서드를 호출하여 클라이언트와 서버를 연결합니다. ReceiveThread receiveThread = new Rece..