정말 좋은 질문입니다. 나는 지난 몇 년 동안 항상 그것에 대해 궁금해했습니다. 이것 뒤에 정당한 이유가 있다고 생각했지만 실제로는 그렇지 않습니다.
나는 대답이 다소 간단하다고 생각하며 많은 대답이 실제로 문제에 파고 들지 않습니다.
언어가 화면에 piexel을 그릴 수 있다면 Windows 양식 컨트롤 모양과 느낌을 정확하게 모방하는 GUI 프레임 워크를 100 % 만들 수 있습니다.
Java는 크로스 플랫폼이기 때문에 실제 실행중인 시스템 유형 (Mac / Windows) UI를 기반으로 런타임 플랫폼 스타일과 일치하는 두 플랫폼에서 다르게 보일 수 있습니다.
예를 들어 XAML에서 볼 수 있듯이 UI는 매우 구조화 된 형태와 언어로 쉽게 표현할 수 있습니다. 시간이 걸리면 "기본"동작을 선택할 수도 있습니다.
따라서 Java 개발자가 Mac 및 Windows에서 기본으로 보이는 응용 프로그램을 얻을 수있는 GUI 프레임 워크를 만들 수 있습니다.
우리는 Swing에 도달합니다. Java를 위해 생성 될 수있는 잠재적 인 무한한 GUI 프레임 워크 중 하나의 GUI 프레임 워크입니다. 위의 프로세스를 따르지 않고 프로그래밍 된 방식으로 작동하며 두 시스템에서 이상하게 보이는 앱을 얻습니다. 스윙 개발자가 선택한 것은 아무도 그렇게하지 않고 그렇게 행동하도록 강요하지 않았다.