728x90
[전체 게임 기획/설계] [게임 실행 영상] 스도쿠게임_실행영상 [게임 개발 설명] [Main] -주된 UI를 제공하는 MainFrmae객체를 생성. Main public class Main { public static final int SCREEN_WIDTH = 800; public static final int SCREEN_HEIGHT = 600; public static void main(String[] args) { new MainFrame(); } } [MainFrame 클래스] -게임 UI의 주된 컴포넌트 처리를 이 안에서 해결했다. 동적인 화면 전환을 위해 여러 가지 Panel을 사용하고 boolean 변수로 현재의 screenImage를 컨트롤했다. MainFrame 클래스 public c..
package mouse; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; //사각형 화면에 그리기용 class Rectangle { int x, y, w, h; } class MyPanel extends JPanel{ BufferedImage img = null; int img_x = 0, img_y = 0; Rectangle [] array = new Rectangle[100]; int index = 0; public ..
package ch12; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.JPanel; //캡쳐 클래스 public class Capture { public static void main(String[] args) { //필드 JFrame capture = new JFrame(); capture.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension d; Rectangle re..
[코드 설명] -MyFrame 클래스에 JFrame 상속과 동시에 ActionListener를 구현해놓았다. class MyFrame extends JFrame implements ActionListener { //필드 private JButton zero, one, clear, change; //버튼 4개 private JTextField text; //Text 창 private JPanel panel; //패널 //생성자 public MyFrame() { setSize(350, 300); //프레임 크기 설정 setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("자바 시험"); setLayout(ne..
2.문자열에서 숫자 추출하기 - 화면에서 사용자 입력을 받음. - 화면 아래 '계산' 버튼을 클릭하면, 사용자가 입력한 문자열에서 숫자만 추출한 후, 그 숫자를 모두 더한 값을 출력할 것 [코드 설명] -MyFrame() 클래스 내부에서 이벤트 처리할 수 있도록 JFrame 상속받는 동시에 ActionListener도 implement 시켜두었다. class MyFrame extends JFrame implements ActionListener{ //필드 private JPanel panel; private JButton cal; private JTextArea input; private JTextField output; //생성자 public MyFrame() { this.setSize(350, 300..
1. 소수 출력하기 - 화면에 숫자 10이 초기화되어 있음 - '+' 버튼을 누르면 숫자보다 큰 가장 작은 소수(즉, 10보다 큰 가장 작은 소수는 11)로 문자열을 변경 - '-' 버튼을 누르면 숫자보다 작으면서도 가장 큰 소수(즉 10보다 작은 소수 중 가장 큰 것은 7)로 변경 단, '-'버튼을 누를때 제일 작은 소수는 2이므로, 그 이하로 내려가지 않아야 함 [코드설명] -MyFrame() 클래스 내부에서 이벤트 처리할 수 있도록 JFrame 상속받는 동시에 ActionListener도 implement 시켜두었다. class MyFrame extends JFrame implements ActionListener{ //필드 private JButton plus, minus; private JLab..
[소스코드] [소스코드] Node.java package hwlinkedlist; public class Node { //필드 private String name; private int pointSum; private Node next; //생성자 public Node(String n, int pointMath, int pointKorean, int pointEnglish) { this.name = n; this.pointSum = pointEnglish + pointKorean + pointMath; next = null; } //Getter, Setter 메소드 public String getName() { return name; } public void setName(String name) { th..
package dynamic_beat; public class Main { public static final int SCREEN_WIDTH = 1280; public static final int SCREEN_HEIGHT = 720; public static final int NOTE_SPEED = 3; public static final int SLEEP_TIME= 10; public static final int REACH_TIME = 2; public static void main(String[] args) { new RythmGame(); } } package dynamic_beat; public class Beat { private int time; private String noteType;..
🟩 ch12. 스윙 컴포넌트들 ch12. 스윙 컴포넌트들 12-1. 스윙 컴포넌트에 이미지 표시 거의 모든 스윙 컴포넌트에는 이미지를 추가로 표시 O [스윙 컴포넌트에 이미지 표시] : ImageIcon 클래스 사용 1) ImageIcon 클래스의 객체 생성 ImageIcon은 JPEG, GIF, PNG 파일을 읽을 수 있다. 경로지정 시, 절대 경로 or 상대경로 ImageIcon image = new ImageIcon(“image.gif”); 경로지정 X -> 자동으로 프로젝트 폴더 이미지 파일 불러옴 2) setIcon() 메소드 사용 -> 원하는 컴포넌트에 이미지 지정 JLabel label = new JLabel(“이미지 레이블”); label.setIcon(image);12-2. 체크 박스 [..
🟩 ch11. 그래픽 프로그래밍 ch11. 그래픽 프로그래밍 11-1. 그래픽 프로그래밍 기초 [자바 그래픽 사용하는 방법] 1) 전통 AWT 패키지 사용 2) 최근 java 2D API 사용_ 2차원 그래픽 구현 자바는 플랫폼에 독립적이기 때문에 어디서나 똑같은 모양의 그래픽 프로그램 작성 O >> 화면 위에 사각형, 원 그리는 프로그램 [프레임 생성] 스윙에서는 JFrame 클래스의 인스턴스가 바로 프레임이 된다. [패널 생성] 컨테이너 역할하는 JPanel 클래스의 인스턴스 생성 후 -> 프레임 객체에 추가하면 된다. 패널 내부에는 JPanel 클래스의 paintComponent() 메소드를 재정의 → 이 메소드 내부에 실질적으로 그림 그리는 코드를 작성해야 한다. paintComponent() 메..
🟩 Ch10. 사용자 이벤트 처리 ch10. 사용자 이벤트 처리 10-1. 이벤트 구동 프로그래밍 [이벤트 구동 프로그래밍] 이벤트 발생 시, 연결된 컴포넌트에 대해 이벤트 리스너 토대로 적절 처리 프로그래밍 방식 이벤트에 의하여 실행 순서가 결정되는 방식 이벤트 발생 → 이벤트 객체 생성 -> 컴포넌트에 등록된 이벤트 리스너가 이벤트 처리 [이벤트 리스너 작성 과정] (1) 리스너 인터페이스를 구현한 ‘이벤트 리스너 클래스 작성’ class 이벤트리스너 implement 리스너 인터페이스 { ... }(2) 컴포넌트에 이벤트 리스너 객체 등록 컴포넌트 . add____Lister(new 리스너 객체());[이벤트 객체] 이벤트 객체: 발생된 이벤트에 대한 모든 정보를 리스너로 전달 이벤트 객체 내부 g..
🟩 Ch09. 인터페이스/람다식/패키지 09-1. 인터페이스 개요 [인터페이스] 클래스 간 상호작용의 표준 규격 규격 안에 합의된 추상 메소드 작성 인터페이스 내부에는 기본적으로 추상 메소드, 상수만 선언 가능(자동 처리됨) [구현 클래스] implement 키워드 인터페이스를 구현한 클래스 내부에는 반드시 인터페이스의 추상 메소드 전부를 재정의 이후 실행 메소드에서 구현 객체 생성하여 사용 O [인터페이스 VS 추상클래스] : 자체로 객체 생성 불가능 추상 클래스 : 하위 실체 클래스들의 공통 속성들을 내부에 선언해둔 클래스 : 내부에 (공통 속성이기만 하면) 인스턴스(일반) 필드, 메소드도 정의할 수 O 인터페이스 : 기본적으로 내부에 추상 메소드와 상수변수만 선언 허용함 관련된 클래스 사이에서 공통..
🟩 ch08. 그래픽 사용자 인터페이스 08-1. GUI(그래픽 사용자 인터페이스) 📌 GUI를 제공하면 사용자가 사용하기 쉬워진다. 자바에서는 GUI도 ‘객체’로 만든다. [AWT와 스윙] AWT : 자바 초기 제공 GUI. 컴포넌트가 플랫폼에 종족적이라 일관된 화면 제공 X 스윙(多): 업그레이드 버전 GUI. 컴포넌트가 자바로 작성되어서 일관된 화면 제공 O : 스윙에 속하는 클래스들은 모두 앞에 J 붙임 [스윙 패키지] java.awt : GUI 컴포넌트를 위한 부모 클래스 제공. Color, Point클래스 포함 java.awt.event : GUI 컴포넌트로부터 발생되는 이벤트 처리할 클래스, 인터페이스 제공 java.awt.swing : GUI 컴포넌트 제공 (버튼, 텍스트 필드, 프레임, ..
[변수] -데이터타입 출력 int intType = 100; double doubleType = 150.5; System.out.println(StringType); System.out.println(intType); System.out.println(doubleType); System.out.println(StringType); -final 키워드-> 상수 정의 public class Main { final static double PI = 3.141592; //final 상수 선언 public static void main(String[] args) { int r = 30; System.out.println(r*r*PI); } -데이터 범위 넘어선 오버플로우의 개념 이해 public class Mai..
ch14. 입출력 스트림 14-1. 입출력 스트림 (기본 스트림) 📌 자바는 ‘스트림’을 통해 직접 ‘데이터’를 입출력한다. ‘스트림’: 단일 방향, 연속적으로 흘러가는 것 [입출력 스트림의 종류] : java.io 패키지는 多 종류의 스트림 제공 ‘바이트’ 기반 스트림 : 바이너리 데이터 입출력 스트림 출력 최상위 클래스 : OutputStream 입력 최상위 클래스 : InputStream ‘문자’ 기반 스트림 : 문자 데이터 입출력 스트림 출력 최상위 클래스 : Writer 입력 최상위 클래스 : Reader 📗[바이트 ‘출력’ 스트림] : OutputStream : 바이트 기반 출력 스트림의 최상위 클래스, 추상 클래스 : OutputStream 클래스 -> 모든 바이트 기반 출력 스트림의 기본 ..
ch13. 컬렉션 프레임워크 13-1. 컬렉션 프레임워크 [컬렉션 프레임워크] : 자료구조 개념 이용하여 객체들을 효율적으로 관리하고자 java.util 패키지에서 제공하는 인터페이스, 구현 클래스들을 총칭함 : 인터페이스(사용 방법 정의) + 구현 클래스(실체) = 컬렉션 인테페이스 (List/Set/Map) + 컬렉션 클래스(구현 클래스) 🟩[List 컬렉션] : List 인터페이스 : 객체들을 인덱스로 관리 : 저장 용량 자동 증가, 자동 인덱스 부여 : 객체 자체를 저장 X 객체의 번지를 참조 O 객체 저장 순서 유지 객체 중복 저장 O null 저장 O [List 컬렉션 메소드] 객체 추가 맨 끝에 객체 추가 : add(객체); 지정 인덱스에 객체 추가 : add(인덱스, 객체); 지정 인덱스 ..
ch12. 스레드 12-1. 멀티 스레드 [프로세스] : 운영체제에서 실행 중인 하나의 애플리케이션 : 운영체제로부터 메모리 할당받아 애플리케이션 실행 단일 프로세스 : 하나의 애플리케이션 내부, 단 하나의 프로세스 멀티 프로세스 : 하나의 애플리케이션 내부, 多 프로세스 [스레드] : 하나의 작업 실행에 필요한 하나의 코드 실행 흐름 : 멀티 스레드 생성 -> 병렬로 실행 -> 멀티 태스킹 수행 O 싱글 스레드 ; 하나의 프로세스 내부, 단 하나의 메인 스레드 멀티 스레드 : 하나의 프로세스 내부, 메인 스레드 1개 + 여러 개의 작업 스레드 들 [멀티 프로세스 VS 멀티 스레드 비교] 🟨멀티 프로세스 : 독립적 실행 : 각 프로세스가 운영체제에서 자신의 메모리를 할당받아 실행하므로 각 프로세스는 서로..
11-1. java.lang 패키지 [java.lang 패키지] : 자바 프로그램의 기본 클래스 담고 있는 패키지 ( import 없이 사용 O) [자바 API 도큐먼트] API : Application Programming Interface **개발에 자주 사용되는 클래스,인터페이스 모음 라이브러리** -8버전 : 전체 자바 표준 API를 패키지별로 정리 -11버전 : 전체 자바 표준 API를 모듈별로 정리 : 이클립스로 접근 시. 클래스이름 드래그 -> f1키 누르면 자동으로 API 도큐먼트 Help 뷰 -> 링크 클릭 [API 도큐먼트 읽기] 최상단 SUMMARY : 해당 클래스 내에 선언된 멤버의 종류 나열 클래스의 선언부 확인 -final / abstract 클래스 키워드 확인 -extends ..
ch10. 예외 처리 10-1. 예외 클래스 📌 Error : 하드웨어적 문제 Exception : 프로그램 실행 도중 발생 문제 [예외와 예외클래스] 2가지 일반 예외 : 컴파일러 체크 예외 : 컴파일러가 해당 예외처리코드 존재 여부 검사 O 실행 예외 : 컴파일러 넌 체크 예외 : 컴파일러가 검사X : JVM 은 예외를 클래스로 관리 : JVM 은 실행 도중 예외 발생 시 -> 해당 예외클래스로 객체 생성 : 모든 예외 클래스는 jaca.lang.Exception클래스를 상속받음 [실행 예외 종류] 1) NullPointerException 🟨 java.lang.NullPotinterException 예외 발생 : null값 갖는 참조 변수로 객체 접근 시도할 때 발생 2) ArrayIndexOutO..