본문 바로가기

언어공부

(188)
자바 swing(스윙)- 그래픽 프로그래밍, 자바 좌표계 자바 그래픽 프로그래밍에 대해서 알아보자. 그래픽 프로그래밍 프레임 위에 그래픽으로 표시해보자. 일단 자바에서는 프레임은 다른 컴포넌트를 넣어두는 컨테이너의 역할로 설계되었다. 따라서 다른 컴포넌트 위에 그린 후에 그 컴포넌트를 프레임에 추가하는 것이 좋다. JPanel은 그림을 그릴 수 있는 서피스를 가지고 있고, 동시에 컨테이너의 역할을 하기 때문에 버튼이나 텍스트 필드와 같은 컴포넌트를 넣을 수 있어 사용자 인터페이스와 그래픽을 동시에 구현할 수 있다. JFrame과 JPanel을 상속받아 작성하고, JPanel의 각종 메소드를 오버라이딩해서 추가적인 기능을 쉽게 구현할 수 있다. paintComponent(Graphics g)메소드 컴포넌트에 그림을 그리기 위해서는 컴포넌트가 가지고 있는 pain..
자바 swing(스윙) 자바 swing에 대해서 알아보자. swing(스윙) AWT 다음으로 Swing(스윙)이 나왔다. 스윙은 AWT와는 달리, 컴포넌트가 자바로 작성되어 있기 때문에 어떤 플랫폼에서도 일관된 화면을 제공한다. 또한 AWT에 없는 다양한 컴포넌트들을 제공한다. 스윙은 AWT를 대체하기 위하여 AWT의 컴포넌트 이름 앞에 J를 붙인 동일한 기능을 하는 컴포넌트들을 대체용으로 제공한다. 스윙은 다양한 룩앤필(look and feel, 각각의 운영체제가 지원하는 GUI 외관)을 제공한다. 룩앤필에 따라서 약간씩 외관이 달라진다. 1. gui . 스윙은 보다 더 세련되고 다양한 형태의 를 제공한다. 2. 스윙을 사용할려면 스윙 기본 패키지인 javax.swing을 import을 해야 한다. 3. 스윙 컴포넌트는 기존..
자바 컴포넌트의 이벤트처리 자바 컴포넌트의 이벤트 처리에 대해서 알아보자. 자바 컴포넌트의 이벤트 처리 이벤트(event)는 응용 프로그램에 어떤 요구를 하는 사건을 말한다. 이벤트 리스너(event listener)는 이벤트를 기다렸다가 이벤트가 발생하게 되면 이벤트 소스 객체로 적당한 처리를 하게 되는 객체를 말한다. 이벤트 소스(event source)는 버튼이나 스크롤바와 같이 이벤트가 발생한 컴포넌트 객체를 말한다. 어댑터 클래스는 리스너 인터페이스를 구현하여 리스너 인터페이스의 추상 메소드로 정의되어 있는 메소드를 모두 다 정의해 놓은 클래스이다. 이벤트 처리를 위한 리스너 클래스가 필요하다면 리스너 인터페이스 대신 어댑터 클래스의 상속을 받도록 해 필요한 메소드만 오버라이딩하면 된다. 1. 자바에서 이벤트란 컴퓨터에 ..
자바 awt - flow layout, border layout, grid layout, panel 자바 awt - flow layout, border layout, grid layout, panel에 대해서 알아보자. 자바가 제공하는 컴포넌트는 크게 기본 컴포넌트와 컨테이너 컴포넌트로 나누어진다. 컨테이너란 다른 컴포넌트들을 내부에 넣을 수 있는 컴포넌트를 의미한다. 기본적인 컴포넌트로 Button, Label, Checkbox, TextField등이 있으며, 컨테이너 컴포넌트로 Frame, Panel등이 있다. 컨테이너에게 배치관리자를 지정하는 절차는 아래와 같다. 배치관리자를 생성 → setLayout()메소드로 컨테이너에 설정 → 컴포넌트 추가 배치관리자로 flow layout, border layout, grid layout와 컨테이너 컴포넌트 panel을 보자. flow layout(플로우 ..
자바 GUI(그래픽 사용자 인터페이스), awt, 프레임 객체 생성 및 창닫기 자바 GUI(그래픽 사용자 인터페이스), awt에 대해서 알아보자. GUI(그래픽 사용자 인터페이스) 지금까지의 프로그램들은 모두 콘솔 기반이었다. 콘솔기반이란 MS-Dos창과 같이 텍스트만을 사용해서 사용자와 대화하는 것이다. GUI는 버튼이나 스크롤바와 같은 그래픽 사용자인터페이스를 뜻하며, GUI를 이용하면 사용자와 상호작용하는 프로그램을 쉽게 작성할 수 있다. GUI는 컴포넌트들로 만들어진다. 여기서 컴포넌트(component)란 레이블, 버튼이나 텍스트 필드와 같은 GUI를 작성하는 기본적인 빌등 블록을 의미하는 것으로 윈도우 시스템에서는 컨트롤(control)이라고도 부른다. AWT(Abstract Windows Toolkit) AWT는 운영체제가 제공하는 자원을 이용해서 컴포넌트를 생성한다...
자바 제네릭(지네릭스, Generics), 와일드카드 자바 제네릭(지네릭스, Generics)에 대해서 알아보자 제네릭(지네릭스, Generics) 지네릭스는 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 지네릭스가 나온 배경으로 컬렉션은 복수개의 타입을 동시 저장하다 보니 원하는 추출이 어렵다. 그러므로 지정한 타입만 저장하기 위해서 나온것이 지네릭스다. 지네릭스를 지정하면 원하는 자료형 추출이 쉽다. 불필요한 타입 변환을 할 필요가 없기 때문에 프로그램 성능이 향상된다. 컴파일 시 강한 타입 체크를 할 수 있기 때문에 자료의 안정성이 보장된다. 예를 들어 A..
자바 Map인터페이스, Hashtable과 HashMap, Map과 Iterator 자바 Map인터페이스, HashMap과 HashTable, Map과 Iterator에 대해서 알아보자. Map인터페이스 Map인터페이스는 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는 데 사용된다. (예를 들어 우편번호, 전화번호 등) 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게 된다. 구현클래스들은 HashMap, LinkedHashMap, TreeMap, hashtable, Properties 등이 있다. Hashtable과 HashMap Hashtable과 HashMap의 관계는 Vetor와 ArrayList의 관계와 같아서 Hashtable(JDK1.0)보다..
자바 Set인터페이스, HashSet, TreeSet 자바 Set인터페이스, HashSet, TreeSet에 대해서 알아보자. Set인터페이스 Set인터페이스는 저장순서가 없는 데이터의 집합. 데이터의 중복을 허용하지 않는다. (예를 들어 양의 정수 집합, 소수의 집합) 구현클래스는 HashSet, TreeSet등이 있다. HashSet HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션이며, Set인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다. HashSet에 새로운 요소를 추가할 때는 add메소드나 addAll메소드를 사용하는데, 만일 HashSet에 이미 저장되어 있는 요소와 중복된 요소를 추가하고자 한다면 이 메소드들은 false를 반환함으로써 중복된 요소이기 때문에 추가에 실패했다는 것을 알린다. 이러한 HashSe..