Microsoft PowerPoint - 12장_스윙 [호환 모드]

Similar documents
9장.key

제8장 자바 GUI 프로그래밍 II

<4D F736F F F696E74202D20C1A63230C0E520BDBAC0AE20C4C4C6F7B3CDC6AE203128B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - EEL2 Lecture10 -Swing and Event Handling.pptx

PowerPoint 프레젠테이션

PowerPoint Template

Microsoft PowerPoint - [JAVA프로그래밍]9장GUI

No Slide Title

강의자료

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

PowerPoint 프레젠테이션

Microsoft PowerPoint - lec04_05.ppt [호환 모드]

오버라이딩 (Overriding)

Java Programing Environment

PowerPoint Presentation

gnu-lee-oop-kor-lec10-1-chap10

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

슬라이드 1

JAVA PROGRAMMING 실습 08.다형성

자바GUI실전프로그래밍2_장대원.PDF

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

제8장 자바 GUI 프로그래밍 II

슬라이드 1

11장.key

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

No Slide Title

Microsoft PowerPoint - ÀÚ¹Ù08Àå-2.ppt

PowerPoint 프레젠테이션

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

Microsoft PowerPoint - java2-lecture5.ppt [호환 모드]

C# Programming Guide - Types

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Java Coding Standard

MVVM 패턴의 이해

제1장 자바 언어 소개

PowerPoint Presentation

PowerPoint Presentation

1

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

제11장 프로세스와 쓰레드

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

쉽게 풀어쓴 C 프로그래밍

설계란 무엇인가?

DB 에데이터저장을위한입력창설계 - JLabel, JTextField, JButton 을이용한입력창설계 - 2 -

Microsoft PowerPoint - 06-Chapter09-Event.ppt

쉽게

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

제13강. 스윙(Swing)

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft PowerPoint - 14주차 강의자료

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

Visual Basic Visual Basic 소개

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Design Issues

PowerPoint Presentation

Microsoft PowerPoint - CSharp-10-예외처리

View Licenses and Services (customer)

Microsoft PowerPoint - java1-lecture11.ppt [호환 모드]

Visual Basic 반복문

PowerPoint Presentation

Windows 8에서 BioStar 1 설치하기

JDK이클립스

PowerPoint Presentation

PowerPoint 프레젠테이션

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Cluster management software

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

JUNIT 실습및발표

<4D F736F F F696E74202D20C1A63233C0E520B1D7B7A1C7C820C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

JVM 메모리구조

1

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Spring Boot

어댑터뷰

제목

MF3010 MF Driver Installation Guide

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft PowerPoint - 2강

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

gnu-lee-oop-kor-lec06-3-chap7

Microsoft PowerPoint 자바-AWT컴포넌트(Ch8).pptx

윈도우즈프로그래밍(1)

게임 기획서 표준양식 연구보고서

PowerPoint Presentation

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Studuino소프트웨어 설치

쉽게 풀어쓴 C 프로그래밍

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<4D F736F F F696E74202D20C1A63138C0E520C0CCBAA5C6AE20C3B3B8AE28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Transcription:

자바 5.0 프로그래밍 원리를알면 IT 가맛있다 이클립스를활용한자바 A to Z ehanbit.net -1- ehanbit.net

chapter 12. Swing -2- ehanbit.net

학습목표 스윙의특징및 AWT 와의차이점에대해알아본다. 스윙의 MVC 구조를알아본다. 스윙에서제공하는컴포넌트에대해알아본다. -3- ehanbit.net

스윙의특징 자바에의 JFC(Java Foundation Class) 는 GUI 프로그래밍에필요한각종툴킷을모아놓은것으로현재는 GUI의기능들을구현할수있는스윙, 2D, Drag&Drop 등을지원한다. 스윙을사용하는방법은 AWT와거의유사하나 AWT보다는많은컴포넌트및기능을지원하고있다. 스윙은 AWT와달리자바프로그래밍으로자체적인제작된컴포넌트이므로플랫폼에관계없이모양이동일하게사용할수있다. -4- ehanbit.net

스윙의특징 룩앤필 (Look & Feel) 스윙에서가장획기적으로바뀐것중에하나가컴포넌트의화려함이다. 이러한외관 (Look & Feel) 을프로그램을실행하는도중에여러가지형태로바꾸어사용할수있는기능을제공한다. 스윙은순수한자바로만만들어졌기때문에어떤플랫폼에서라도동일한룩앤필 (Look & Feel) 을유지할수가있다. Java Look & Feel Windows Look & Feel Motif Look & Feel -5- ehanbit.net

스윙의특징 경량의컴포넌트 AWT에서제공하는컴포넌트들은 JVM이기반으로설치되어있는네이티브플랫폼에의존하여그컴포넌트들을그대로가져다사용하는중량의컴포넌트들이다. 스윙은순수자바로구현되어있는컴포넌트들이기때문에어떤플랫폼을사용하더라도거기에의존하지않고독립적으로사용할수있는경량의컴포넌트이다. DubleBuffering 지원 더블버퍼링기능은그래픽의성능을향상시키기위해도입된방식으로 AWT 에서는사용자에의해직접구현해야되지만스윙에서는자체적으로더블버퍼링기능을제공한다. -6- ehanbit.net

스윙의특징 ToolTip( 풍선도움말 ) 지원 스윙에서제공하는컴포넌트들은풍선도움말을지원한다. javax.swing.jcomponent 클래스의메서드에서 settooltiptext(string text) 메서드를이용해서마우스를컴포넌트위에위치하게되면풍선도움말을지원할수있다. -7- ehanbit.net

스윙의특징 Delegate 모델 (MVC : Model-View-Controller) MVC 모델은 GUI 설계패턴중하나이다. MVC 모델은 3 가지로구성되어있는데, 컴포넌트가표현해야하는자료구조를추상화하고뷰에게필요한데이터를제공하는모델 (Model), 모델로부터전달받은데이터를화면에표시하는뷰 (View), 모델과뷰를제어하면서이벤트를처리해주는컨트롤러 (Controller) 가담당을한다. -8- ehanbit.net

스윙의특징 스윙에서는 MVC 모델에서 VC를통합시켜델리게이트 (Delegate) 라불리는컴포넌트로묶어사용하는델리게이트모델이다. 복잡한구조를단순화시켜프로그래밍을좀더쉽게할수있도록하였다. 델리게이트는컴포넌트의뷰와컨트롤러의기능을담당하므로그자체가컴포넌트라고할수있고, 이것을 UI Delegate 객체라고도한다. -9- ehanbit.net

스윙의특징 실제적으로스윙에 MVC 모델을적용했을때의구조 사용자가컴포넌트에서이벤트를발생 (Controller) 시키게되면이벤트의종류에따라서모델클래스 (Model) 를선정하게된다. 선택된모델클래스는데이터를처리하고그데이터를다시클라이언트에게전송하여출력 (View) 시킨다. -10- ehanbit.net

스윙의특징 이미지아이콘 (ImageIcon) 지원 텍스트뿐만아니라이미지를화면에출력시켜주는기능을가지고있다. 자바플랫폼에서지원하는모든그래픽을사용하여보여줄수있고현재사용할수있는이미지데이터포맷은 JPEG와 GIF이다. -11- ehanbit.net

스윙의특징 보더 (Border) 지원 보더라 (Border) 란컴포넌트의경계선을의미한다. 컴포넌트들은경계선 (Border) 이존재하지않지만스윙부터는이경계선을어떻게보여줄지를결정할수있다. 스윙에서제공하는 Border는 8가지가있는데서로조함이가능하기때문에상당히많은형태가존재한다고말할수있다. 보더를지원해주는패키지는 javax.swing.border 패키지에포함되어있다. -12- ehanbit.net

스윙의특징 -13- ehanbit.net

스윙의기본구조 스윙컴포넌트는 javax.swing.jcomponent 클래스로부터상속받은 Sub 클래스들이다. 컴포넌트들은경계선 (Border) 이존재하지않지만스윙부터는이경계선을어떻게보여줄지를결정할수있다. -14- ehanbit.net

스윙의기본구조 컨테이너구조 -15- ehanbit.net

스윙의기본구조 컴포넌트구조 -16- ehanbit.net

스윙컨테이너 JFrame 클래스 스윙의 JFrame은 AWT의 Frame과달리좀복잡한구조로되어있다. 프레임자체로구성되어있는것이아니라그안에 4개의페인 (pane) 이층으로구성되어있다. 다음그림은 JFrame 의내부구조이다. -17- ehanbit.net

스윙컨테이너 JRootPane : 실질적인윈도우기능을수행하는경량의컨테이너이다. 이러한구조를사용하는것은모든윈도우들의동작이나사용방법등이같아지고다른컴포넌트들과잘조화가될수있도록도와주기때문이다. JRootPane 은 GlassPane 과 layeredpane 으로구성되어있고, layeredpane 은 JMenuBar와 contentpane을포함한다. layeredpane : 루트페인에대해레이어를할수있도록여러층의패널을포함할수있는패널로여러컴포넌트들을서로오버랩 ( 컴포넌트위에다른컴포넌트를붙이는작업 ) 할수있도록한다. 윗부분은 JMenuBar 와아래부분은 contentpane 으로이루어져있다. contentpane : 일반적인컴포넌트들을가질수있는패널이다. 프레임객체의 getcontentpane() 메서드를이용해서얻을수있다. glasspane : 기본적으로숨겨진상태로되어있으며, 다른패널위에존재하는패널이다. 주로마우스이벤트를처리하기위해가장먼저루트페인에추가된다. JMenuBar : 윈도우의메뉴를제공하는역할로생략이가능한선택항목이다. JMenu, JmenuItem 등을이용해서메뉴를구성하여 setjmenubar() 메서드을이용해서등록할수있다. -18- ehanbit.net

스윙컨테이너 JFrame 클래스의주요메서드 JDK 1.4까지는반드시 contentpane() 메서드를통해 contentpane을얻어컴포넌트를붙일수있도록하였지만 JDK 1.5 버전부터는 AWT 에서사용했던것처럼프레임에바로 add() 함수를이용해서붙일수있도록지원하고있다. JFrame은사용자가직접이벤트를처리하지않아도종료버튼을클릭하면프레임이없어진다. 이것은기본적으로 setdefaultcloseoperation(hide_on_close) 라는메서드가실행되었기때문이다. 이것은단지프레임을숨기는것으로실제적으로프레임의자원을해제하지는않는다. 그러므로명시적으로종료하기위해서는 setdefaultcloseoperation(exit_on_close) 를이용해서완전히프레임의자원을해제하면서종료시키는것이좋다. -19- ehanbit.net

스윙컨테이너 -20- ehanbit.net

스윙컨테이너 JEditorPane 여러가지형태의포맷의문서를처리할수있도록설계된컴포넌트이다. 현재사용할수있는텍스트포맷은일반 TEXT, HTML, RTF이다. -21- ehanbit.net

스윙컨테이너 -22- ehanbit.net

스윙컨테이너 JTextPane 스타일이가미된텍스트를보여주거나편집할수있도록제공하여워드프로세서의형태의프로그램을제작가능한컴포넌트이다. 여기에는다양한폰트, 색상, 크기, 기울임, 정렬등과같은서식을사용할수있다. -23- ehanbit.net

스윙컨테이너 -24- ehanbit.net

스윙컨테이너 JScrollPane 스크롤을이용해서컴포넌트들을보여주는컴포넌트이다. 스크롤을이용해서보여주는화면을상하좌우로이동하여포함된컴포넌트의원래크기를유지시킬수있다. 스크롤이필요한컴포넌트 (JList, JTextArea, JTextPane 등 ) 는 Scrollable 인터페이스가구현된컴포넌트이기때문에이스크롤패녈에포함시켜서사용한다. JScrollPane의중앙을뷰포트라고하는데포한된객체를보여주기위한영역을의미한다. 포함된컴포넌트의크기가뷰포트영역보다큰경우자동으로스크롤바가생성이되어보여지게되고, 이러한정책을가지고있는있는인터페이스는ScrollPaneConstants 인터페이스에정의되어있다. -25- ehanbit.net

스윙컨테이너 -26- ehanbit.net

스윙컨테이너 JTabbedPane JTabbedPane 클래스는여러패널을담을때사용하는컴포넌트이다. 일반적으로기능별로분류된옵션들을동시에보여줄필요가없고, 필요시하나의패널만보여주기위해서사용을하는컴포넌트이다. 사용방법은타이틀이나아이콘을가지는탭을클릭함으로써여러개의패널중에선택된탭으로교체되면서화면에보여주는컴포넌트이다. 탭의위치는상하좌우에위치할수있는데기본적으로는패널의왼쪽위 (Top) 에있다. -27- ehanbit.net

스윙컨테이너 -28- ehanbit.net

스윙컨테이너 JSplitPane 윈도우의내부를두개의패널로상하또는좌우로나뉘어사용할수있도록보여주는컴포넌트이다. 두패널사이에는분리자라고불리는가느다란선이있는데이것을움직이게되면패널의크기를조절할수있다. 또한 JSplitePane을중첨해서사용하면여러개의사각형으로분할하여사용할수있다. JSplitePane 클래스는분할자에한번의클릭으로각패널을전체그리고만들수있도록하는원터치확장 (OneTouchExpandable) 옵션이있고, 분할자의위치를조절할때연속적으로각패널을다시그리는연속레이아웃 (ContinuousLayout) 옵션이있다. 기본설정은분할자를원하는위치로이동시킨후마우스를놓으면그때두패널이다시그려진다. -29- ehanbit.net

스윙컨테이너 -30- ehanbit.net

스윙컨테이너 -31- ehanbit.net

스윙컨테이너 JDesktopPane JInternalFrame 을담기위해만들어진가상데스크탑을생성하는컨테이너로 JInternalFrame 객체를생성하여 JDesktopPane에추가한다. 다중레이어를지원하며내부에는 DesktopManager 를가지고있어 JInternalFrame을관리할수있다. 내부프레임을관리하는주요기능인최대화, 원래크기로, 아이콘화, 이동, 크기조절, 닫기와같은기능을가지고있다. -32- ehanbit.net

스윙컨테이너 -33- ehanbit.net

스윙컨테이너 -34- ehanbit.net

스윙컨테이너 DefaultDesktopManager 클래스의주요메서드 메서드 반환형 메서드 void activateframe(jinternalframe f) 지정한프레임을활성화시키고맨앞으로이동시킨다. void closeframe(jinternalframe f) 지정한프레임을닫고데스크탑에서제거한다. void deiconifyframe(jinternalframe f) 지정한프레임을아이콘화상태에서원래상태로복구시킨다. void iconifyframe(jinternalframe f) 지정한프레임을아이콘화상태로만든다. void maximizeframe(jinternalframe f) 지정한프레임을최대화상태로만든다. void minimizeframe(jinternalframe f) 지정한프레임을원래상태로되돌린다. void void resizeframe(jcomponent f, int newx, int newy, int newwidth, int newheight) 지정한프레임의크기를지정한다. setboundsforframe(jcomponent f, int newx, int newy, int newwidth, int newheight) 지정한프레임의크기를지정한다. -35- ehanbit.net

스윙컨테이너 JInternalFrame 윈도우의 MDI(Multiple Document Interface) 기능을제공하는프레임이다. 일반프레임과마찬가지로타이틀바와윈도우제어버튼 ( 최대화, 원래크기로, 닫기 ) 을가지고있으며크기변경, 이동, 도구모음등의기능을지원하고있다. 특별한경우를제외하고는 JDesktopPane과함께사용하며외부에서보기에는 JFrame 과유사한데룩앤필에의해서그모양이바뀔수있다. JInternalFrame 클래스는 WindowEvent대신 InternalFrameEvent를발생하며종료와같은이벤트는 InternalFrameEvent를통해처리하면된다. -36- ehanbit.net

스윙컨테이너 -37- ehanbit.net

스윙컨테이너 -38- ehanbit.net

스윙컨테이너 JOptionPane 프로그램을실행하는도중에사용자로부터데이터를입력받거나특정한메시지를출력시켜확인시키는작업들을할수있도록지원하는컴포넌트이다. 자체적인기능을가지고있는것은아니기때문에객체를생성한후반드시 showxxxdialog() 메서드를이용해서어떤다이얼로그박스를출력시킬것인가를정해야된다. -39- ehanbit.net

스윙컨테이너 Component parentcomponent : 다이얼로그박스를소유하고있는부모가컴포넌트이다. Object messge : 다이얼로그박스에서보여줄메시지이다. String title : 다이얼로그박스에서타이틀부분에보여줄타이틀이다. int optiontype : 다이얼로그박스하단에표시되는옵션버튼이다. Icon icon : 다이얼로그박스좌측에보여주는아이콘이다. -40- ehanbit.net

스윙컨테이너 JOptionPane 클래스의메시지관련필드 JOptionPane 클래스의옵션관련필드 -41- ehanbit.net

스윙컨테이너 JOptionPane 클래스의반환값과관련필드 -42- ehanbit.net

스윙컨테이너 -43- ehanbit.net

스윙컨테이너 JFileChooser 프로그램을실행하는도중에데이터를파일로부터불러오거나파일에저장할수있도록파일선택다이얼로그상자를사용할수있도록만든컴포넌트이다. 파일선택창은 FileSystemView, FileView, FileFilter 등과같은컨트롤러가조합되어만들어진다. FileSystemView 는파일시스템과디렉토리정보를제공하고, FileView 는디렉토리내부에있는파일들에대한정보를제공하며 FileFilter 는파일을원하는종류만보여줄수있도록걸러주는역할을한다. -44- ehanbit.net

스윙컨테이너 -45- ehanbit.net

스윙컨테이너 -46- ehanbit.net

스윙컨테이너 JColorChooser 사용자가색상을선택할수있도록기능을제공하는컴포넌트이다. 일반적으로는 showdialog() 메서드를이용해서화면에출력을시키는데이런방법외에 createdialog() 메서드를이용할수도있고, 다른윈도우나컨테이너에포함시켜사용할수도있다. -47- ehanbit.net

스윙컨테이너 -48- ehanbit.net

스윙컴포넌트 AbstractButton 클래스 JButton, JToggleButton, JRadioButton 등의모든버튼의종류를추상화한클래스로대부분의버튼이이클래스로부터상속을받는다. 버튼들의모양이나기능은다르지만기본적인기능들은이클래스구현되어있다. -49- ehanbit.net

스윙컴포넌트 JButton 클래스 JButton 클래스는 AWT의버튼과거의유사하며버튼에텍스트와이미지를모두넣을수있고다양한상테에서보여줄버튼의이미지를각가지정하여롤어버 (Roll-Over) 버튼을만들수도있다. -50- ehanbit.net

스윙컴포넌트 JToggleButton 클래스 버튼의상태를기본과선택된상태두가지를가지는버튼으로선택된상태를계속유지하고있다. 기본상태에서한번클랙하면선택상태로계속유지하고있다가다시선택하면기본상태를계속유지할수있는버튼이다. 일반적으로기본상태와선택된상태를구분하기위해서서로다른아이콘을지정하여사용을한다. -51- ehanbit.net

스윙컴포넌트 JRadioButton 클래스 AWT의 Checkbox 클래스를이용한라디오형체크박스와유사한형태의컴포넌트이다. 여러항목중에서하나의항목만선택할수있도록만든컴포넌트로여러개의항목을그룹으로묶어주기위하여 ButtonGroup 클래스를이용해서그룹으로묶어준다. -52- ehanbit.net

스윙컴포넌트 JCheckBox 클래스 AWT의 Checkbox 클래스의기능과유사하고, 컴포넌트에텍스트와이미지를모두넣을수있다. -53- ehanbit.net

스윙컴포넌트 JLabel 클래스 AWT의 Label 클래스의기능과유사하고, 컴포넌트에텍스트와이미지를모두넣을수있다. 텍스트와이미지를붙일때정렬하는방식이좀복잡하다. 여기서말하는정렬이라함은자체정렬방식과텍스트와이미지사이의정렬상태를의미한다. -54- ehanbit.net

스윙컴포넌트 -55- ehanbit.net

스윙컴포넌트 JList 클래스 AWT 의 List 클래스의기능과유사하지만스크롤바가자동으로생성되지않는다는차이점이있다. 그래서 JList 를 JScrollPane 에포함시켜자동으로스크롤할수있도록지원한다. 컨트롤러를자체적으로가지고있는컴포넌트로아이템을직접컴포넌트에추가할수있는모델접근메서드를지원하지않는다. 아이템를추가하기위해서는아이템을저장할수있는모델이있어야하는데주로배열이나 Vector 를이용한다. 모델이나컨트롤러를지정하지않으면 Default 가붙는기본모델과컨트롤러가만들어진다. -56- ehanbit.net

스윙컴포넌트 -57- ehanbit.net

스윙컴포넌트 JComboBox 클래스 AWT의 Choice 클래스의기능과유사하고, 컴포넌트에텍스트와이미지를모두넣을수있다. 주의할점은사용자가아이템을선택햇을때 ItemEvent가발생되고, 사용자가선택한아이템을바꾸면 ActionEvent가발생된다. 즉, AWT에서는 ItemEvent가발생하였지만스윙에서는발생되지않는다. -58- ehanbit.net

스윙컴포넌트 -59- ehanbit.net

스윙컴포넌트 JTextComponent 클래스 JTextComponent 클래스는모든스윙텍스트컴포넌트의 Super 클래스로텍스트편집에대한기능 (Copy, Cut, Paste 등 ) 을제공한다. -60- ehanbit.net

스윙컴포넌트 JTextField 클래스와 JPasswordField 클래스 JTextField 클래스는 AWT의 TextField 클래스와거의기능이유사하며그중반향문자를설정해서암호를입력했던것을스윙에서는 JPasswordField 클래스가암호를입력할때다른문자로바꾸어보여주는기능을가지는컴포넌트이다. -61- ehanbit.net

스윙컴포넌트 JTextArea 클래스 AWT의 TextArea 클래스와거의기능이유사하며자체적으로스크롤을처리하지않으므로 JscrollPane 에포함시켜스크롤을지원한다. 한줄의폭이텍스트영역의폭보다클때자동으로줄바꿈을해주지않으므로옵션을통하여설정을해야한다. 줄바꿈을할때는보통문자단위로하지만 setwrapstyleword() W 메서드를이용하면단어단위로줄바꿈할수도있다. -62- ehanbit.net

스윙컴포넌트 JSlider 클래스 사용자가최대값과최소값으로정해진범위내에서값을지정하여사용하는컴포넌트이다. 수직, 수평으로모양을지정할수있으며, 필요시눈금과값을표시할수있다. 눈금 (Tick) 은주눈금과보조눈금으로나누어사용할수있다. -63- ehanbit.net

스윙컴포넌트 -64- ehanbit.net

스윙컴포넌트 JProgressBar 클래스 우리가보통프로그램을설치할때나인터넷익스플로러에서페이지가열릴때오랜시간이걸리때작업의진행상태를나타낼수있는컴포넌트이다. 슬라이드와는달리사용자가직접값을변경시킬수는없고보여주는기능만가지고있다. -65- ehanbit.net

스윙컴포넌트 -66- ehanbit.net

스윙컴포넌트 JToolBar 클래스 자주사용하는메뉴를버튼형태의모양으로보여주는컴포넌트이다. 부모컴포넌트로분리되거나도킹될수있는데이기능을사용하기위해서는부모컴포넌트는반드시 BorderLayout 이어야한다. -67- ehanbit.net

스윙컴포넌트 -68- ehanbit.net

스윙컴포넌트 JTree 클래스 데이터를계층적인노드형식으로보여주는컴포넌트이다. 윈도우에서탐색기를실행시켰을때볼수있는것처럼하나의부모노드에여러개의자식노드가계층적으로연결된상태로보여주는것이다. 데이터를표현하는하나의객체를노드라하고가장최상위에있는노드를루트노드라한다. 루트노드밑에있는것을자식노드라하는데자식노드는가질수도있지만없을수도있다. 자식노드는또다른자식노드를가질수도있지만없을수도있다. 일반적으로자식노드가존재하지않는노드를리프 (leaf) 라부른다. JTree에서노드들은 TreeModel에의해다루어진다. TreeModel는랜더러와에이터등각종컨트롤러들이관련되어있다. 이모델은트리에서노드를나타내기위해어떤타입의객체든지사용할수있도록지원하고있다. TreeCellRenderer라고하는특별한객체가있는데, 이것은시각적으로표현하는객체로변환하도록지원해준다. -69- ehanbit.net

스윙컴포넌트 기본적으로설정되어있는경우는 DefaultTreeCellRenderer 가되고이는 JLabel을확장해서구현한것이다. 노드가선택된상태를기록, 제어하는데사용되는모델은 TreeSelectionModel이다. 기본적인트리구조를만드는방법은 TreeNode를이용하는데, 이경우계층적인구조를가지는트리모델을잘표현해낼수가있다. 사용자가직접트리모델을구현해서트리를생성할수도있다. TreeNode 나모델을만들지않고좀쉬운방법을이용해서트리를만드는방법은배열이나벡터, 해쉬테이블을이용하는방법이다. 좀더강력한트리구조를만들고싶다면 DefaultMutableTreeNode 를이용하는데, 이클래스는 TreeNode 인터페이스를구현한클래스로트리구조를만들기위해사용할수있는유용한메서드를지원한다. -70- ehanbit.net

스윙컴포넌트 -71- ehanbit.net

스윙컴포넌트 -72- ehanbit.net

스윙컴포넌트 -73- ehanbit.net

스윙컴포넌트 -74- ehanbit.net

스윙컴포넌트 -75- ehanbit.net

스윙컴포넌트 -76- ehanbit.net

스윙컴포넌트 -77- ehanbit.net

스윙컴포넌트 -78- ehanbit.net

스윙컴포넌트 -79- ehanbit.net

스윙컴포넌트 -80- ehanbit.net

스윙컴포넌트 -81- ehanbit.net

스윙컴포넌트 -82- ehanbit.net

스윙컴포넌트 JTable 클래스 데이터를행과열로구성되어있는테이블형식으로보여주는컴포넌트이다. JTable 역시 Scrollable 인터페이스가구현되어있어 JscrollPane에붙여스크롤을할수있으며모델로는 TableModel을사용한다. 테이블내의각각의행과열이맞나는공간을셀 (Cell) 이라고하는데하나의값만이기억된다. JTable 은스윙의특징에서언급했듯이 MVC 모델을가장잘보여주고있는컴포넌트이다. JTable을사용하기위해서는먼저데이터를저장할모델을만들고, 뷰인 JTable에연결해주어서화면에출력을시켜야한다. -83- ehanbit.net

스윙컴포넌트 -84- ehanbit.net

스윙컴포넌트 TableModel로부터행과열의개수, 데이터타입정보, 열의 header( 타이틀 ), Cell 데이터편집등을설정하는메서드를지원한다. 일반적으로사용자가모델을따로설정하여고유테이블모델을만들어사용하는데, 만드는방법은 TableModel인터페이스를구현하거나 AbstractTableModel과 DefaultTableModel을상속하는방법이있다. DefaultTableModel 은유용한메서드들을지원하고있지만불필요한기능이너무많아일반적으로는 AbstractTableModel을많이사용한다. JTable에서모델과컨트롤러를설정할때는각클래스마다기본 Editor 와 Renderer 를각각설정할수있다. Cell의데이터타입에따라 Editor를두어색상, 폰트등과같은다양한형태로보여주는것이가능하다. 물론기본적으로는 DefaultTableCellRenderer 와 DefaultCellEditor 가설정되어사용된다. J2SE 5.0에는 API에 print() 메소드가추가되어테이블출력, 결과물에머리글 / 바닥글삽입, 출력페이지에테이블크기맞추기등의설정이가능해졌다. -85- ehanbit.net

스윙컴포넌트 -86- ehanbit.net

스윙컴포넌트 -87- ehanbit.net

스윙컴포넌트 -88- ehanbit.net

스윙컴포넌트 -89- ehanbit.net

스윙컴포넌트 -90- ehanbit.net

스윙컴포넌트 -91- ehanbit.net

스윙컴포넌트 -92- ehanbit.net

Thank you ehanbit.net -93- ehanbit.net