지금은 자주 쓰이진 않지만 자바 스윙도 알아 두시면 유용합니다.
교체 가능한 외관(look & feel)
look & feel이 동작도중에 동적으로 교체가 가능하다. 자바의 확실한 멀티플랫폼 지원의 일부
현재 Window, java, Motif 세가지 외관이 지원된다.
MVC(Model View Controller) 모델
MVC 구조는 Alan Kay라는 사람이 만든 객체 지향 언어인 Smalltalk-80 version에서 소개
컴포넌트 디자인 모델의 하나로 각각의 컴포넌트를 Model, View, Controler로 구분하여 추상화
① 모델(Model) : 프로그램의 상태에 대한 논리적인 데이터를 표현한다. 또한 모델의 데이터가
변경되었을 경우 이를 뷰 객체에게 알려주는 역할을 하는 객체이다.
변경되었을 경우 이를 뷰 객체에게 알려주는 역할을 하는 객체이다.
② 뷰(View) : 모델에 의해서 표현된 데이터에 대한 시각적인 화면 출력을 관리하는 객체이다.
뷰는 응답 메커니즘을 기술하기 위하여 콘트롤러를 이용한다. 즉, 콘트롤러의 입력에 응답하여
그 결과를 화면으로 출력해 준다.
③ 콘트롤러(Controller) : 모델에 의해서 표현된 데이터를 사용자가 변경할 수 있도록 사용자
상호작용(User Interaction)을 제공하는 객체이다.
JFC의 Swing에서의 MVC의 구조는 상태부분(Model)과 표현부분(View+Controller=UI)으로
구분함으로써 다음과 같은 특징을 갖는다.
-같은 모델을 가지고 쉽게 동시에 여러 개의 뷰를 만들 수 있다.
-모델에는 표현부분이 없기 때문에 모델의 영향을 주지 않고 필요에 따라 뷰를 자유롭게 수정할 수 있다.
구분함으로써 다음과 같은 특징을 갖는다.
-같은 모델을 가지고 쉽게 동시에 여러 개의 뷰를 만들 수 있다.
-모델에는 표현부분이 없기 때문에 모델의 영향을 주지 않고 필요에 따라 뷰를 자유롭게 수정할 수 있다.
Swing 일반적인 MVC 구조에서 공통적으로 약간 변형시킨 형태로 컴포넌트를 표현한다. 즉, 뷰와 콘트롤러를 하나로 묶어서 델리게이트라는 커다란 컴포넌트를 형성,모델은 바꾸지 않고 프로그램 실행 중간에 Delegate(view+Controller)를 통해 Java Look&feel을 윈도우 look&feel로 바꿀 수가 있는것이다.
경량 컴포넌트(lightweight Component) : 시스템의 Native Component와 연계되지않은 컴포넌트, 반대로 AWT의 모든 컴포넌트는 Peer라는것을 통하여 시스템의 Native Component와 연계되어 있다. Native Component를 사용하지 않으므로 자원을 적게 소모하며 플랫폼에 독립적인 컴포넌트를 만들수 있다. 스윙 컴포넌트는 경량 컴포넌트라 말할 수 있습니다. 그렇다고 스윙 컴포넌트가 모두 경량 컴포넌트라는 말은 아닙니다. 경량 컴포넌트는 완전히 Java 만으로 작성되어야 하고, 사용자가 임의로 룩앤필을 바꿀 수 있는 것이라야 합니다.?중량 컴포넌트란 그 플랫폼이 제공하는 컴포넌트로 사용자가 변화를 모색할 수 없는 매우 경직된 컴포넌트, AWT 컴포넌트는 중량형 컴포넌트이다.
스윙은 모든 플랫폼에서 동일한 외형을 갖고, 동일한 작동을 하며, 최대한 유연성을 갖는 완전히 Java 만으로 작성된 "경량형lightweight" 컴포넌트를 제공한다는 목적으로 시작됨.
경량 컴포넌트(lightweight Component) : 시스템의 Native Component와 연계되지않은 컴포넌트, 반대로 AWT의 모든 컴포넌트는 Peer라는것을 통하여 시스템의 Native Component와 연계되어 있다. Native Component를 사용하지 않으므로 자원을 적게 소모하며 플랫폼에 독립적인 컴포넌트를 만들수 있다. 스윙 컴포넌트는 경량 컴포넌트라 말할 수 있습니다. 그렇다고 스윙 컴포넌트가 모두 경량 컴포넌트라는 말은 아닙니다. 경량 컴포넌트는 완전히 Java 만으로 작성되어야 하고, 사용자가 임의로 룩앤필을 바꿀 수 있는 것이라야 합니다.?중량 컴포넌트란 그 플랫폼이 제공하는 컴포넌트로 사용자가 변화를 모색할 수 없는 매우 경직된 컴포넌트, AWT 컴포넌트는 중량형 컴포넌트이다.
스윙은 모든 플랫폼에서 동일한 외형을 갖고, 동일한 작동을 하며, 최대한 유연성을 갖는 완전히 Java 만으로 작성된 "경량형lightweight" 컴포넌트를 제공한다는 목적으로 시작됨.
댓글 없음:
댓글 쓰기