일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- start.spring.io
- 언박싱
- 콜렉션
- 싱글턴
- 컬렉션
- 루프
- 자동형변환
- 내장객체
- 인텔리제이
- wrapper
- 빌드
- 제네릭
- boxing
- 클래스
- unboxing
- Jenkins
- https://start.spring.io
- dependency
- 스프링
- 싱글톤
- 박싱
- 제너릭
- Java
- Scanner
- maven
- bootstrap
- 메소드
- suvlet
- 무한
- Short
- Today
- Total
목록분류 전체보기 (447)
Developer Gonie
import java.awt.*; class Sub1 extends Frame{ Sub1(String title){ super(title); // 부모의 생성자에 넘겨주면 제목을 보여지게 할 수 있음 super.setSize(400,300); //setSize(400,300); Button east_bt = new Button("동쪽"); Button west_bt = new Button("서쪽"); Button south_bt = new Button("남쪽"); Button north_bt = new Button("북쪽"); Button center_bt = new Button("중앙"); setLayout(new BorderLayout()); // BorderLayout 사용시 아래와 같이 동서남북센..
* 컨테이너(Frame, Panel 등)에는 컴포넌트들이 어떻게 배치될지를 지정하기 위해 레이아웃을 선택해줄 수 있음 * 배치 관리자 지정은 생성자에서 아래 중 하나를 선택해서 지정해주면 됨 setLayout(new BorderLayout()); setLayout(new FlowLayout()); setLayout(new GridLayout(3,2)); // 인자 생략가능 * Frame의 디폴트 배치관리자 즉, 레이아웃은 BorderLayout으로 지정되어 있음(변경가능) * Panel의 디폴트 배치관리자 즉, 레이아웃은 FlowLayout으로 지정되어 있음(변경가능) FlowLayout GridLayout BorderLayout - West, East 지정을 생략하면 3분할로도 사용가능 - 지정을 따로..
* 참고로 AWT 관련 메소드나 클래스는 자동으로 추가하는게 안되어 수동으로 타이핑 해줘야 한다. Case0. 프레임만 생성한 경우 import java.awt.Frame; public class Ex12_01_Frame { public static void main(String[] args) { Frame f = new Frame(); f.setVisible(true); f.setSize(400,300); f.setLocation(300, 100); } } Case1. Frame 위에 Componets들이 바로 배치되는 경우 import java.awt.*; class Sub0 extends Frame{ Sub0(String title){ super(title); // 부모의 생성자에 넘겨주면 제목을 ..
주요 구성요소 컴포넌트 - 사용자 인터페이스 구성을 위한 도구(버튼, 체크박스, 라디오 버튼 등등) 컨테이너 - 컴포넌트를 담는 클래스(프레임, 패널 등) 일반적인 화면구성 Case1(아주 간략한 구조) Frame 위에 Componets들이 바로 배치되는 경우 Case2(일반적으로 사용될 구조) Frame 위에 Panels가 위치하고 각 Panel에 Compnets들이 배치되는 경우
* 내가 들은 강의에서는 AWT를 사용하였다. Java 에서 GUI를 지원하는 API 2가지 1) AWT(Abstract Window Toolkit) - 윈도우 프로그램을 하기 위한 클래스 라이브러리 - 플랫폼 독립적인 그래픽 프로그램을 작성할 수 있다. - 운영체제별로 컴포넌트의 모양이 다를 수 있음 2) SWING - AWT를 디스플레이적인 면과 기능적인 면에서 '개선한' 그래픽 라이브러리 - 다양한 컴포넌트 제공 - AWT로 만든 컴포넌트랑 모양이 살짝 다르며, 어느 운영체제든 컴포넌트의 모양을 일치시키게 할 수 있음 - 프로그래밍 과정에서 SWING만 사용할수는 없고 AWT도 같이 사용하게 된다. CUI와 GUI CUI : 명령어를 직접 입력해야 하는 방식 GUI : 명령어 위주가 아닌 ICON ..
예시코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Ex11_07_InputStreamReader { public static void main(String[] args) { System.out.print("입력:"); //InputStream is = System.in; // System.in은 키보드를 의미하는데 키보드로는 1byte만 받을 수 있음 //InputStreamReader ir = new InputStreamReader(is); // 키보드의 1byte 입력을 2byte 입력으로 바꿔줌 숫자, ..
파일에서 구분자로 구분해 읽어오는 코드 - test.txt를 생성한 상태에서 실행해야 하며, 파일의 내용은 "1,2,3,4,5,6,7,8,9,10" 였다. import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Ex11_10_Scanner { public static void main(String[] args) { //Scanner sc = new Scanner(System.in); // Scanner(InputStream source) 생성자 사용 //System.out.print("입력"); //int a = sc.nextInt(); File f = new File("test.txt..
FileOutputStream / FileWriter / BufferedWriter 위 세가지는 공통적으로 파일에 텍스트를 저장하기 위한 용도로 사용된다. 먼저, FileOutputStream은 1byte 단위로 처리하며, 버퍼가 없어 write()시 바로 디스크에 쓰기위한 시스템 콜이 이뤄진다. flush()나 close()를 만나지 않아도 1글자 마다 디스크에 접근하기 때문에 효율이 가장 떨어진다. 1byte 단위로 전송하기 때문에 한글은 깨지며 영어 숫자 특수문자는 잘된다. 바로 다음에 오는 링크는 버퍼를 사용하지 않고 텍스트를 파일에 저장하는 FileOutputStream 을 설명한 그림이다. https://hajsoftutorial.com/java/wp-content/uploads/2018/04..
* 1차 스트림을 FileReader / FileWriter 로 사용하였고 2차 스트림을 BufferedReader / BufferedWriter 로 사용 후 BufferedReader 의 readLine() 매소드를 이용해 한줄 씩 입력받는것이 핵심임. * FileWriter/BufferedWriter 둘의 차이는 그저 버퍼 유무에 따른 성능차이(공통점은 둘 다 파일을 작성하기 위해 사용됨) FileWriter FileWriter는 Java로 파일을 작성하는 가장 간단한 방법입니다. 파일에 int, byte array, String을 쓰기 위한 오버로드된 write 메소드를 제공합니다. FileWriter를 사용하여 문자열 또는 바이트 배열의 일부를 쓸 수도 있습니다. FileWriter는 파일에 직접..
* 버퍼란? 스트림으로부터의 입/출력 속도를 향상 시키기 위한 메모리(RAM)의 임시 저장소이다. 한 바이트씩 파일을 입출력하는 것보다 버퍼(바이트배열)를 이용해서 한 번에 여러 바이트를 입출력하는 것이 빠르므로 대부분의 입출력 작업에 사용된다. 버퍼의 크기를 정해주지 않으면 기본적으로 8192byte이다. * FileInputStream / FileOutputStream 을 BufferedInputStream/BufferedOutputStream 으로 감싸서 사용함으로써 얻는 효과 BufferedOutputStream을 사용하면 버퍼에 버퍼의 사이즈만큼 n개가 차고 n+1번째꺼가 밀고 들어오면 그제서야 한번에 대량으로 Output장치로의 실제 전송(저장)이 수행된다.(BufferedInputStream..
* 한글을 사용하려면 문자 스트림! FileReader / FileWriter 스트림에는 '문자 스트림'과 '바이트 스트림'이 존재하는데 FileInputStream / FileOutputStream은 바이트 스트림으로 영어나 특수문자 숫자는 잘 처리하나, 한글은 잘 처리를 못함. 깨짐. 한글을 다루고 싶다면 문자 스트림의 FileReader/FileWriter를 사용해야 함. * 스트림.close()의 숨겨진 기능 close 해주면 버퍼에 있지만 아직 파일로 내보내지지 않은걸 내보내게 한다. 이와 비슷한 효과를 갖는 것으로 스트림.flush() 메소드가 있다. * 여기서도 2차 스트림을 사용하고 싶은 경우 BufferedRead/BufferedWriter 클래스를 사용하면 됨. 예시코드 import j..
* 스트림이란? 특정 파일과 자바파일 사이의 연결다리 역할을 하며, 단방향으로만 작동함(읽기, 쓰기가 동시에 되지 않는다.) 특정 파일로부터 데이터를 읽기 위한 클래스와 특정 파일에 데이터를 쓰기 위한 클래스가 각각 존재한다. ex) FileInputStream, FileOutputStream 등 * 바이트 스트림(Byte Stream)이란? 1byte(8bit)를 input/output 할 수 있는 스트림이다. FileInputStream / FileOutputStream이 이에 속함. 1byte는 숫자, 영어를 처리하기에 충분하나 한글을 처리하기엔 충분하지 않다.(2byte 필요) 이 때문에 바이트 스트림을 이용해 한글을 처리하면 깨지는 현상이 발생한다. 한글을 다루고 싶다면 문자 스트림의 FileR..