2009-03-20 4 views

답변

1

J는 Java를 나타냅니다. JSomeName 클래스와 "이전"버전의 주된 차이점은 Swing (또는 다른 그래픽 툴킷)과 함께 사용하도록 설계된 J-ones와 AWT 만 사용할 수있는 곳의 다른 것들입니다.

13

Sun에서 Swing에 대한 작업을 시작했을 때 javax.swing.Button과 같은 것이있었습니다. 이로 인해 java.awt.Button을 사용하지 않는 프로그램에서 문제가 발생했습니다. 주요 쟁점은, 내가 기억한다면, 컴파일러 오류 메시지가 혼란 스러웠다는 것이다.

Sun은이 문제를 제거하기 위해 모든 Swing 구성 요소 앞에 J를 붙이기로 결정했습니다.

원래 Swing은 JFC - Java Foundation Classes ...라고 불렀습니다. 아마 J가 그랬을 것입니다.

IFC from Netscape은 JFC의 기반이었습니다 ... 같은 팀이 두 가지를 개발했습니다.
팀이 넷스케이프에서 썬으로 옮겼습니다.
J는 라이센스 소지자에게 첫 번째 소스 드롭에있었습니다 (나는 그 사람이 내 회사에서 드롭을받은 이유입니다).

JClass BWT와 (스윙이 된 JFC를했다)가 IFC

뿐만 아니라 호환되지 않는 ... " Can I use BWT controls in an IFC environment?"

편집 : 스윙 팀의 일원에서 이메일에 응답 ...

"유엔 - J'd 이름은 이미 AWT에 의해 을 찍은 우리는 유용 구별하는 공통 접두어를 사용 생각"구성 요소 "를 패키지의 다른 클래스에서합니다."

이미 찍은 부분은 컴파일러에 대해 언급 한 내용과 일치하지만 확인하지는 않습니다.

+0

좋은 시도지만, 나는 그러한 "혼란"과 관련된 하나의 버그 (태양에서)를 발견하지 못했습니다.그러나 KL 그룹이 Swing에 통합 된 JClass에 대한 언급을 발견했습니다. 그래서 -1. – VonC

+0

[Humour on] 일종의 추측은 "추측은 실제로 물건을 보는 것뿐만 아니라 작동하지 않습니다."나는 내 얼굴을 들었다. http://stackoverflow.com/questions/432922/significant-new-inventions-in- 컴퓨팅 - 이후 1980/434650 # 434650. – VonC

+0

그것은 버그가 아니 었습니다 ... 아마도 자바 유즈넷 그룹이나 릴리스 노트에 있었을 것입니다. 또는 JFC 팀과 가진 회의에 있었을 수도 있습니다 ... 10 년 전 ... 미안 해요. 내가 본 정확한 장소를 기억하십시오. – TofuBeer

7

'J'는 혁명적 인 BWT가 Swing/JFC라는 향상된 AWT의 기초를 형성하는 KL Group (now quest.com)에 의해 처음 발표되었습니다. TofuBeer's answer에 따라,
(그렇지 않은 :

그래서, 오늘의 KL JClassancestor에서 유래는, JCLASS 무엇인지 자세히 설명하지만, 'J'때문에 수있는 커뮤니티 응답으로 나머지를 남겨 스윙에 자신의 라이브러리의 통합을 전혀 오지.)

JCLASS SwingSuite, 썬 마이크로 시스템즈에서 스윙, 주식 회사의 Java (TM) 개발 키트에 대한 확장 및 개선의 새로운 세트 (JDK (TM) 버전 1.2) : 뉴욕의 Java (SM) Business Expo (SM)에서 오늘 발표 된 JDK 1.2의 출시에 대한 Sun의 발표와 함께.

JClass JavaBeans은 널리 사용되는 Java IDE에서 사용할 수 있으며 전 세계의 전문 및 기업 개발자가 사용하는 필수 구성 요소입니다.
JClass 3.6 에는 javax.swing 패키지와 함께 작동하는 "J"버전이 포함되어 있으므로 현재 JDK 1.2를 사용하여 개발 및 배포 할 수 있습니다 ().JClass 3.6 to 4.0 Porting GuideKL Group Releases Swing Update for JClassLine (march 1998)에서


:

특정 자바 개발 키트에 사용할 수있는 자바 개발자, 우리는 우리의 JCLASS 제품의 버전을 개발 사용하고있을 수 환경의 다양한 유형을 수용하기 위해 (JDK). 다음 목록 다른 버전의 차이점 :

  • "J"버전 : + 스윙 JDK 1.1를 사용하여 1.1 (JDK는 1.1.8 스윙 1.1.1 권장 +)
  • "K"는 버전 : 자바를 사용하여 2 다음과 같이

JCLASS 3.6 및 이전 버전은 약간 다른 편지 쓰기 방식을 사용 (JDK 1.2.2 권장) :

  • "T"버전 : JDK 1.0.2 API를 사용하여 "Transitional"JavaBeans를 구현합니다.
  • "배우지"버전 : JDK 1.1.x의 사용과 전체 자바빈 구현을 포함
  • "S"버전 : JDK 1.1/스윙
  • 은 "J"는 버전
  • 를 1.0.3 용도 : JDK 1.2 JDK 1.1를 사용 스윙 1.1

와 일반적인 문맥의 비트 :

The Basic Java Applet and JApplet에서 :

AWT (Abstract Windowing Toolkit)는 처음부터 Java의 일부 였지만 처음부터 AWT는 복잡하고 정교한 응용 프로그램을 작성하는 데 강력하거나 유연성이 없었습니다.

이 기능은 유용하지 못합니다. 특히 애플릿의 경우 일반적으로 본질적으로 독립적 인 응용 프로그램만큼 복잡하지 않습니다.

Swing 그래픽 사용자 인터페이스 라이브러리는 AWT의 문제점을 해결하기 위해 작성되었습니다. Java 버전 1.2의 출시로 Swing은 Java의 공식적인 부분이되었습니다. (1.2로 시작하는 Java의 버전을 "Java 2"라고 다소 혼란스럽게도합니다.)

Java 2의 많은 웹 브라우저에서 지원이 부족한 것과 같이 AWT를 기반으로 애플릿을 작성하는 데에는 여전히 좋은 이유가 있습니다 그러나이 시점에서 Java에서 독립형 그래픽 응용 프로그램을 작성하는 사람은 거의 확실하게 Swing을 사용해야합니다.

Swing 라이브러리를 구성하는 클래스는 javax.swing 패키지에서 찾을 수 있습니다. 스윙은 애플릿 작성을위한 기초로 사용되는 클래스 javax.swing.JApplet을 포함합니다.

JApplet 실제로 Applet의 서브 클래스이기 때문에 JApplets는 일반적인 의미에서 사실 Applets에 있습니다.

그러나 JApplets에는 일반 애플릿에이없는 많은 추가 구조가 있습니다. 이 구조로 인해 JApplet의 그림은 더 복잡한 사건이며 시스템에서 처리합니다.

따라서 서브 클래스를 JApplet으로 만들 때 paint() 메소드를 작성하면 안됩니다. 보시다시피, JApplet에 그리려면 해당 용도로 사용되는 애플릿에 구성 요소를 추가해야합니다. 반면에 JApplet 하위 클래스에 대해 init() 메서드를 작성할 수 있고 일반적으로 작성해야합니다. enter image description here

Swing

는 라벨과 같은 매우 간단한에 이르기까지 구성 요소의 큰 집합입니다, 매우 테이블, 나무와 같은 복잡한 및 스타일 텍스트 문서에.
거의 모든 스윙 구성 요소는 이라는 단일 부모에서 파생되어 AWT Container 클래스를 확장합니다.
따라서, Swing은 AWT 대신에 AWT의 최상위에있는 레이어로 가장 잘 묘사됩니다.
AWT 구성 요소 계층 구조와 비교하면 각 AWT 구성 요소에 접두어 "J"과 동일한 Swing 구성 요소가 있음을 알 수 있습니다.
AWT Canvas 클래스의 유일한 예외는 JComponent, JLabel 또는 JPanel을 대신 사용할 수 있습니다. 많은 Swing 클래스에는 AWT 클래스가 없습니다.

+1

그리고 신사 숙녀 여러분, StackOverflow에 대한 나의 1 천 번의 답변이있었습니다! 와우! 샴페인 그리고 ... 저게 뭐야, 보스? 최신 Findbugs 보고서는 어디에 있습니까? 권리. 다시 일. – VonC

+0

음 ... NFC의 IFC가 JFC의 기초였습니다. 같은 팀이 두 가지를 개발했습니다. 팀은 넷스케이프에서 썬으로 옮겼습니다. J는 면허 소지자에게 첫 번째 소스 드롭에있었습니다 (저는 왜 내 회사에서 그 방울을받는 사람 이었습니까). – TofuBeer

+0

BWT와 IFC (Swing이 된 JFC가 됨)도 호환되지 않았습니다 ... "IFC 환경에서 BWT 컨트롤을 사용할 수 있습니까?" Swing/JFC/IFC의 역사에 대한 자세한 내용은 http://sciencedesk.arc.nasa.gov/jclass/bwt-doc/faq_bwt.html#bg42 – TofuBeer

1

J는 Swing 클래스에서 사용되는 규칙을 따릅니다. javadoc에 따르면

:

AWT 아키텍처와는 다른 JFC/Swing component architecture

JFC/스윙 아키텍처에 대한 지원을 추가하는 java.applet.Applet의 확장 버전입니다.

몇 가지 차이점이 있지만 AWT는 네이티브 코드를 사용하여 위젯을 렌더링합니다 (SWT). Swing은 Java를 사용하여 모두 그려지기 때문에 "경량"입니다.

그래서 귀하의 질문에

에 대한 답은 JApplet에있는 "J"는 무엇을 의미합니까?

스윙 아키텍처를 지원하는 애플릿을 의미합니다.

나는 TofuBeerVonC이 훌륭한 대답이지만, (적어도 직접적으로) 귀하의 질문에는 답변이되지 않는다고 생각합니다. 대신 왜 그들은 스윙 구성 요소에서 J가 왜 다른 외부 클래스의 J 앞에있는 수많은 톤과 혼동되어서는 안되는지 설명합니다.