9 AWT1 AWT1 v AWT v Layout Manager





















- Slides: 21
9장 AWT(1)
AWT(1) v AWT 이벤트 처리 v 배치 관리자(Layout Manager) 2
AWT(1) n 예제 import java. awt. *; // AWT 컴포넌트를 사용하기위해 java. awt 패키지를 import 한다. public class AWTExam { public static void main(String args[]) { // Panel 클래스 객체와 컴포넌트를 배치하기위한 Frame 클래스 객체를 생성한다. Frame frm = new Frame(); // Frame 클래스의 set. Title() 메서드를 호출해 프레임의 타이틀바에 문자열을 출력한다. frm. set. Title("프레임 테스트"); // Frame 클래스의 set. Size() 메서드를 호출해 프레임의 크기를 설정한다. frm. set. Size(400, 200); // Frame 클래스의 set. Resizable() 메서드를 호출해 프레임의 크기를 변경할 수 없게 한다. frm. set. Resizable(false); // 컴포넌트를 배치하기위한 Panel 클래스 객체들을 생성한다. Panel pane 01 = new Panel(); Panel pane 02 = new Panel(); Panel pane 03 = new Panel(); Panel pane 04 = new Panel(); Panel pane 05 = new Panel(); //Panel의 위치를 확인하기위해 Panel 클래스 객체의 set. Background() 메서드를 호출해 배경색을 설정한다. pane 01. set. Background(Color. RED); pane 02. set. Background(Color. BLUE); pane 03. set. Background(Color. GREEN); pane 04. set. Background(Color. ORANGE); pane 05. set. Background(Color. GRAY); 8
AWT(1) // Button 클래스 객체를 생성한다 Button button 01 = new Button("확인"); Button button 02 = new Button("취소"); pane 04. add(button 01); pane 04. add(button 02); frm. add(pane 04, "South"); // 여러 줄의 텍스트를 입력할 수 있는 Text. Area 클래스 객체를 생성한다. Text. Area text. Area = new Text. Area(5, 10); pane 05. add(text. Area); frm. add(pane 05, "Center"); // Frame 클래스의 set. Visible() 메서드를 호출하여 프레임과 프레임에 포함된 컴포넌트를 화면에 출력한다. frm. set. Visible(true); } } n 실행결과 10
이벤트 리스너의 종류 이벤트 클래스 리스너 인터페이스 설명 Action. Event Action. Listener action. Performed(Action. Event) Adjustment. Event Adjustment. Listener adjustment. Value. Changed(Adjustment. Event) Item. Event Item. Listener item. State. Changed(Item. Event) Text. Listener Text. Value. Changed(Text. Event) Component. Event Component. Listener component. Hidden(Component. Event) component. Shown(Component. Event) component. Moved(Component. Event) component. Resized(Component. Event) Container. Event Container. Listener component. Added(Container. Event) component. Removed(Container. Event) Focus. Event Focus. Listener focus. Gained(Focus. Event) focus. Lost(Focus. Event) Key. Event Key. Listener key. Pressed(Key. Event) key. Released(Key. Event) key. Typed(Key. Event) Window. Listener window. Opned(Window. Event) window. Closing(Window. Event) window. Closed(Window. Event) window. Activated(Window. Event) window. Deactivated(Window. Event) window. Iconified(Window. Event) window. Deiconified(Window. Event) window. State. Changed(Window. Event) window. Gained. Focus(Window. Event) window. Lost. Focus(Window. Event) Mouse. Listener mouse. Clicked(Mouse. Event) mouse. Entered(Mouse. Event) mouse. Exited(Mouse. Event) mouse. Pressed(Mouse. Event) mouse. Released(Mouse. Event) Window. Event Mouse. Event 12
AWT(1) n 예제 import java. awt. *; import java. awt. event. *; class My. Action. Listener implements Action. Listener { private Text. Field text = null; public My. Action. Listener(Text. Field text) { this. text = text; } public void action. Performed(Action. Event e) { // Action. Event 클래스의 get. Action. Command()를 호출하여 // 액션 이벤트가 발생한 컴포넌트의 이름을 구한다. String cmd = e. get. Action. Command(); . text. set. Text(cmd + "버튼이 클릭되었습니다. "); } } public class Event. Listener. Exam { public static void main(String args[]) { Frame frm = new Frame(); frm. set. Title(“이벤트 처리 예제"); frm. set. Size(300, 100); 13
AWT(1) Panel pane 01 = new Panel(); Panel pane 02 = new Panel(); Text. Field text = new Text. Field(30); text. set. Editable(false); pane 01. add(text); Button button 01 = new Button(“확-인 "); Button button 02 = new Button("재-확-인 "); pane 02. add(button 01); pane 02. add(button 02); frm. add(pane 01, "Center"); frm. add(pane 02, "South"); Action. Listener listener = new My. Action. Listener(text); // 버튼의 액션 이벤트를 감지하여 도작하도록 Button 클래스의 // add. Action. Listener() 메서드를 호출하여 컴포넌트에 이벤트 리스너를 등록한다 button 01. add. Action. Listener(listener); button 02. add. Action. Listener(listener); frm. set. Visible(true); } } 14
(예제) Swing API를 이용한 이미지 아이콘 추가하기 import javax. swing. *; Image. Icon korea 1 = new Image. Icon("0. jpg"); JButton korea = new JButton("이미지", korea 1); korea. add. Action. Listener(listener); 15
AWT(1) import java. awt. *; public class Flow. Layout. Exam { public static void main(String args[]) { Frame frm = new Frame("Flow. Layout 예제"); frm. set. Size(200, 100); frm. set. Layout(new Flow. Layout()); frm. add(new Button("버튼 1번")); frm. add(new Button("버튼 2번")); frm. add(new Button("버튼 3번")); frm. set. Visible(true); } } 18
AWT(1) n 예제 import java. awt. *; public class Border. Layout. Exam { public static void main(String args[]) { Frame frm = new Frame("Border. Layout 예제"); frm. set. Size(300, 200); // 컨테이너인 Border. Layout 클래스 객체를 인자로 Frame 클래스의 // set. Layout() 메서드를 호출하여 프레임의 배치관리자를 Border. Layout로 설정한다. frm. set. Layout(new Border. Layout()); frm. add(new Button("버튼 1번"), "North"); // 버튼 2번을 프레임의 좌측에 배치한다. 컴포넌트의 위치를 지정하는 문자열은 // Border. Layout 클래스의 정적 멤버 변수를 사용해서 지정할 수도 있다. frm. add(new Button("버튼 2번"), Border. Layout. WEST); frm. add(new Button("버튼 3번"), "East"); frm. add(new Button("버튼 4번"), "South"); frm. add(new Button("버튼 5번"), "Center"); frm. set. Visible(true); } } 20