Homework_15
2020. 6. 19. 19:21
📌 java/Object-oriented Programming
OOP Lab 15(25pts) Due Date : June 26 23 : 59 · Submit your assignment using the following file formats: LabNumber_StudentName_Student_ID.zip Example: Lab15_Hongkildong_201620505.zip. · The Zip file will contain both source file and report file Q1. The Skeleton code to create the following GUI without any functionality is given. Hence, complete the skeleton code in files “Align.java” and “AlignFr..
java - JButton
2020. 6. 17. 19:18
📌 java/java
"JButton" 은 말그대로 버튼이야. 버튼을 레이블처럼 "JFrame"에 붙여서 사용하면 된단다. 그럼 JButton을 배치해보자. JButton 생성하기 "JButton"을 배치하는 건 "JLabel"이랑 똑같아. 바로 사용해보자. 우선 빨간 네모를 보면 JButton 객체를 생성하고 있어. 추가적으로 JButton을 생성할 때 버튼의 타이틀 "Test"를 매개변수로 넘겨주고 있어. 그래서 녹색 네모처름 프레임에 버튼을 붙였을 때, 결과 화면처럼 프레임에 꽉차는 버튼이 생성되게 돼. JButton에서 사용하면 유용한 메소드 가장 많이 사용하는 건 버튼 타이틀 텍스트를 읽거나 변경하는 메소드겠지? 코드 중간에 버튼 타이틀 텍스트를 읽는 메소드는 "getText()" 메소드야. 글고 타이틀을 변경할 때..
java - JLabel
2020. 6. 17. 19:11
📌 java/java
자바에서 레이블을 사용할려면 "JLabel" 이라는 클래스를 사용해야 해. JLabel 생성하기 위 예제의 빨간색 네모를 보면 아주 평범한 객체 생성을 보여주고 있어. 단순하게 생성자의 매개변수로 문자열을 전달해 주고 있어. 이렇게 전달된 문자열이 바로 레이블에 표시될 문자열이야. 이렇게 생성된 "JLabel" 객체를 프레임에 올려야겠지? 녹색 네모부분을 보면 "JFrame"의 메소드 중 "add" 메소드를 활용하여 붙여주면 돼. 위와 같은 레이블이 올라가 있는 윈도우를 확인할 수 있어. JLabel 에서 사용하면 유용한 메소드 이러한 UI 관련된 클래스의 메소드들은 엄청 많기 때문에 그중에서 쓸만한거 골라보자. 우선 기본이 되는 메소드는 문자열을 입력하는 메소드겠지? 바로 "setText" 메소드를 활..
java - JFrame 크기, 위치, 좌표계
2020. 6. 17. 16:19
📌 java/java
JFrame 의 위치 지정하기 JFrame은 엄청나게 많은 메소드들을 가지고 있다. 메소드들을 상황에 맞게 한번 봐보자. 가장 기본이 되는 창의 위치를 지정하는 방법은 "setLocation" 메소드를 사용하면 된다. 자 setLocation 메소드는 니꺼 화면에서 해당 윈도우를 나타낼 위치를 지정하게 된다. 위 그림에서 녹색 네모부분을 보면 setLocation 메소드에 (X좌표값 200, Y좌표값 400)으로 주었다. 그러면 파란색 네모의 윈도우 창이 나타나는데 그 위치가 바로 (200, 400)에 해당하는 위치이다. 자바의 좌표계 자바의 좌표계는 우리가 배웠던 좌표계랑은 위치가 다르다. 원점이 왼쪽 위이다. JFrame의 사이즈 조절 JFrame의 크기를 조절해보자. 이때 사용할 메소드는 "setP..
java - GUI
2020. 6. 17. 16:12
📌 java/java
GUI란 무엇일까? Graphical User Interface 의 약어로 "그래픽 사용자 인터페이스" 라는 의미를 가진다 이말이야. 지금까지 우리가 프로그래밍 한 뒤에 결과값이나 입출력을 커맨드 창에서만 했잖아? 근데 "GUI" 프로그래밍을 하면 하나의 창을 띄우고, 버튼이나 라벨 같은 걸로 꾸밀수 있어. 간단한 HelloWorld 부터 GUI로 출력해보자. 봐라. 새로운 창에 헬로 월드가 출력돼있지? 여기서 구조를 설명해보자면 위 그림처럼 구성되어 있어 우선 기본 윈도우가 되는 "JFrame"이 있단다. 위 그림이 윈도우 창인 "JFrame" 이야. 이 JFrame 위에다가 버튼이고 라벨이고 뭐든 배치해서 사용하는 그릇이라고 보면 돼 그래서 "JLabel" 을 "JFrame" 위에 올려서 사용하고 있..
java - Graphics
2020. 6. 17. 16:02
📌 java/java
그림을 그리기 위해서는 그림을 그리기 위한 도구가 필요하다. 첫번째로 글미 그릴 도화지이고, 두번째는 그림을 그려낼 도구들이다. 자바에서는 이러한 2개를 제공해주는데 우선 그림을 그릴 도화지는 JPanel 클래스를 사용하면 된다. 그리고 JPanel 에는 paint라는 메소드를 제공해 주는데 이 메소드를 오버라이딩하면 Graphics라는 클래스 객체를 제공해준다. 이 Graphics 라는 클래스 객체가 바로 그림을 그려낼 도구들을 의미한다. 위 소스코드가 그림을 그리기 위한 가장 기본 코드이다. 우선 빨간색 네모 부분을 보면 새로운 "DrawPanel" 이라는 클래스를 정의하고 있다. JPanel 클래스를 상속받아서 정의 되어진 DrawPanel 클래스는 Paint라는 메소드를 오버라이딩하고 있다. 이 ..
java - JPanel
2020. 6. 17. 15:09
📌 java/java
JPanel 이란? 쉽게 생각하면 조각난 프레임이라고 생각하면 된다. 왜냐하면 프레임에서 레이아웃 적용과 각종 "UI" 배치들을 "JPanel"에서 다 할 수 있기 때문이다. 위 그림을 보면 "JFrame"에 바로 "UI"들이 붙었다면 이번에는 "JPanel"을 올리고 그 위에 "UI"들을 올리는 방식이다. 다시 쉽게 설명하면 1. JFrame : 메인 프레임 2. JPanel : 보조 프레임 (페널이라고도 한다) 3. JLabel 등 각종 UI : 기능을 수행하는 컴포넌트 이다. 이 페널은 프레임처럼 레이아웃을 설정하여 각종 "UI"를 자신에 배치할 수 있다. 그 다음 페널 자신을 프레임 위에 올려둠으로써 자신 위에 있는 "UI"들을 보여준다. JPanel 을 왜 사용하느냐? 빨간색 네모부분이 JPan..
Homework_14
2020. 6. 17. 14:45
📌 java/Object-oriented Programming
OOP Lab 14(4 x5=20%) Due date : June 21, 23 : 59 Submit your assignment using the following file format: LabNumber_StudentName_Student_ID.zip Example: Lab14_Hongkildong_201620505.zip. Q1. The source code of an application that draws a series of eight concentric circles is given in the files “CirclesJPanel.java” and “Circles.java” in the folder “CodeQ1”. The circles are separated by 10 pixels. He..
java - TreeSet
2020. 6. 13. 17:28
📌 java/java
TreeSet - 범위 검색과 정렬에 유리하다. 범위 검색과 정렬에 유리한 이진 검색 트리로 구현한다. linked list처럼 각 요소(node)가 나무(tree)형태로 연결된 구조이다. 이진 트리는 모든 노드가 최대 두 개의 하위 노드를 갖는다. (부모-자식)
java - HashMap
2020. 6. 12. 19:59
📌 java/java
Hashing 기법으로 데이터를 저장한다. 데이터가 많아도 검색이 빠르다. Map 인터페이스를 구현하며 데이터를 키와 값의 쌍으로 저장한다. 키 (Key) : 컬렉션 내의 키 중에서 유일해야 한다. 값 (Value) : 키와 달리 데이터의 중복을 허용한다. Entry[] table; class Entry{ Object key; Object value; } HashMap - 주요 메서드 매개변수의 타입이 Map인
Homework_13
2020. 6. 9. 16:16
📌 java/Object-oriented Programming
OOP Lab 13 Due Date: June 15, 23 : 59 · Submit your assignment using the following file format: LabNumber_StudentName_Student_ID.zip Example: Lab13_Hongkildong_201620505.zip · The zip file will contain source code file that contains codes of classes. Objectives · How to use generic classes and interfaces that implements the basic data structures in computer Science · Understand the advantage and..
java - Collections Framework (List, Set, Map)
2020. 6. 9. 16:09
📌 java/java
이전 시간에 배열에 대해서 공부했다. 배열은 연관된 데이터를 관리하기 위한 수단이었다. 그런데 배열에는 몇가지 불편한 점이 있었는데 그 중의 하나가 한번 정해진 배열의 크기를 변경할 수 없다는 점이다. 이러한 불편함을 컬렉션즈 프래임워크를 사용하면 줄어든다. ArrayList package org.opentutorials.javatutorials.collection; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { String[] arrayObj = new String[2]; arrayObj[0] = "one"; arrayObj[1] = "two"; // arrayObj[2] =..
java - ArrayList
2020. 6. 9. 12:28
📌 java/Object-oriented Programming
ArrayList는 이름에서도 알 수 있듯이 데이터 형태를 배열(Array)로 하고 List로 구현하여 순서가 있고 중복을 허용합니다. (ArrayList를 사용할 때 import java.util.*;을 임포트 하셔야 합니다.) ArrayList list1 = new ArrayList(); ArrayList도 클래스여서 다른 클래스와 동일한 인스턴스화를 해야 합니다.(생성자에 값을 넣지 않으면 ArrayList 크기는 10으로 지정됩니다. 만약 크기가 넘어버리면 ArrayList가 자동으로 데이터 크기를 키워줍니다.) list1.add("과자"); ArrayList 클래스 내에 메서드중 add메서드입니다. add메서드는 ArrayList에 지정값을 저장합니다.(인자값이 Object타입이여서 아무값을 넣..
Homework_12
2020. 6. 2. 18:42
📌 java/Object-oriented Programming
OOP Lab 12 Due Date: June 7, 23 : 59 Submit your assignment using the following file format: LabNumber_StudentName_Student_ID.zip Example: Lab12_Hongkildong_201620505.zip The zip file will contain two types of files, namely: 1) Report file with file format “Report_Lab number” (eg. report_12) to answer theory questions and to write the screen shot of your program. 2) Source code file that contain..
java 용어 요약
2020. 6. 2. 11:58
📌 java/java
abstract : 사용자가 직접 예쁘게 디자인 해야하는 부분은 abstract로 선언한다. + 상속 강제
java - Generic
2020. 6. 2. 11:35
📌 java/java
어떠한 변수에 들어갈 값, 데이터 타입과 관련이 있다. 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 말이 어렵다. 아래 그림을 보자. T라는 것은 info라는 데이터 타입이다. info라는 필드의 데이터 테입이 String이 되거나 ,StringBuilder가 된다. Person p1 = new Person(); Person p2 = new Person(); package org.opentutorials.javatutorials.generic; class Person{ public T info; } public class GenericDemo { public static void main(String[] args) { Person p1 = new Pe..