2009-03-23 2 views
1

왜 스윙은 중량이 높고 AWT는 자바에서 가벼운가?스윙과 AWT 중 왜 가벼운 것으로 간주되고 다른 하나는 중량급으로 간주됩니까?

+2

가벼운 무게라고 불리는 혼란 스러울 수 있으므로 가벼운 무게라는 제목을 남겼습니다. 데니스 트롤러 (Denis Troller)의 대답이 귀하의 질문에 대한 답변인지 알려주십시오. – Eddie

+0

AFAIK는 SWT의 설계 목표 중 하나가 Swing보다 리소스를 덜 차지하는 프레임 워크를 사용하므로 SWT는 기본 wiggets를 사용합니다. 그리하여 메모리 및 CPU 사용 시간이 줄어 듭니다. 그러나 오늘 (10 년이 지난 후에) 당신은이 점에서 차이를 거의 느끼지 못할 것입니다. Funnily http://en.wikipedia.org/wiki/Standard_Widget_Toolkit에는이 모호함이 있습니다. –

+0

아마도이 질문에 대한 답변 http://wiki.eclipse.org/FAQ_Why_does_Eclipse_use_SWT%3F –

답변

-1

나는이 질문을 완전히 이해하지 못한다. 그리고 나는 이것이 flamewar가 될 것이라고 확신하지만 AWT가 좀 더 원시적이지만 AWT가 "더 간단한"API를 제공하기 때문에 가능할 수도있다. 그러나 스윙은 API를 좋아한다면 논란의 여지는 있지만 매우 무겁거나 무겁습니다. AWT보다 훨씬 더 풍부한 지원과 많은 수업을 제공합니다.

+0

사실, 스윙은보기/모델 구조 때문에 훨씬 더 복잡합니다. –

12

AWT는 기본적으로 각 AWT 구성 요소가 기본 플랫폼 구성 요소이기 때문에 "중량"이라고합니다. AWT는 플랫폼의 기본 GUI 툴킷 위에 구현됩니다. AWT가 Swing에 비해 꽤 제한적인 이유를 설명합니다. 구현되는 부분까지는 최소 공통 분모를 사용합니다.

반면에 스윙은 최상위 구성 요소 (창 ...)를 제외한 거의 모든 것을 Java로 구현합니다. 기본 구성 요소가있을 수 있으며 여전히 "중량"이라고합니다.

IBM의 this page에서 AWT, Swing 및 SWT의 심층 비교를 확인하십시오.

편집 : 무거운/빛이 귀하의 구전에서 뒤집어지는 것처럼 보일지라도 그것이 귀하의 질문이라고 생각합니다. 무겁거나 가벼운 무게는 Java GUI 툴킷의 표준 교단에 불과하므로 이해할 수있었습니다. (BobbyShaftoe 덕분에 그것을 지적 해주었습니다).

+0

스윙을 AWT가 아니라 헤비급으로 간주한다는 질문에 질문자가 혼란 스러울 수도 있습니다. – BobbyShaftoe

+0

사실입니다.글쎄, 그는 실수를했거나 다른 것에 대해 이야기하고 있었지만, "헤비급"이라는 용어가 "lightweight"라는 말은이 주제에 관한 거의 표준이 아니기 때문에, 나는 실수로 갈 것입니다. 그 답이 그가 찾던 것이 아니라면 그는 우리에게 알려줄 것입니다. –

+0

그래, 나는 동의한다. 그럼에도 불구하고 흥미 롭습니다. – BobbyShaftoe

1

Java 세계에서 AWT 구성 요소는 기본 네이티브 구성 요소를 사용하기 때문에 "중량"으로 간주됩니다. java.awt.Button의 인스턴스를 인스턴스화 할 때 실제로는 기본 OS에이 객체를 사용자에게 페인트하도록 요청할 것입니다.

스윙은 대부분 Java2D API에 의존하여 모든 페인팅을 수행하고 기본 OS 또는 하드웨어를 위임하므로 "경량"입니다. 이것은 또한 Swing이 특정 룩앤필 (Windows, GTK, Motif 등)을 모방하기 위해 실제 페인팅을 수행하는 모든 UI 구성 요소를 필요로하는지 설명합니다. 이 도움이

This article explains more in detail the difference between light-weight and heavy-weight components.

희망.

0

각 "중량"구성 요소에는 원시 피어가 있고 "경량"구성 요소에는 기본 피어가 없으므로. AWT는 헤비 웨이트이기 (위해) 때문에, 각 AWT 버튼에는, Windows 플랫폼에는 대응하는 MFC 버튼이, Unix 플랫폼에는 Motif 버튼이 있습니다. Swing은 가볍기 때문에, 버튼의 그래픽은 프레임 위에 그려집니다 ... 기본 MFC 또는 Motif 버튼이 없습니다. 이 주제에 대한 자세한 내용은 Sun의 웹 사이트 Mixing heavy and light components에 있습니다.

관련 문제