2010-08-03 4 views
4

내 응용 프로그램에서 AWTUtilities 클래스를 사용하여 사용자 지정 창 셰이프를 만듭니다. 내가 아는 한, 다른 방법은 없습니다. 그것은 요구 사항입니다.AWTUtilities.setWindowShape()를 사용해야합니까?

warning: com.sun.awt.AWTUtilities is Sun proprietary API and may be removed in a future release

정확히 무엇을 의미 하는가 :

javadoc의 생성은 날이 오류를 준다? 사용할 수는 있지만 출시와 함께 작동하지 않을 수 있습니까? 왜 그걸 넣어야 하죠? 더 중요한 사실은 여기에 진정한 질문이 있습니다. Sun이 그것을 꺼내면 같은 일을하는 또 다른 방법으로 바꾸겠습니까? 그 경고가 무엇입니까?

코드를 호출하기 전에 AWTUtilities 클래스가 있는지 확인할 수 있습니다. 하지만 그렇게 할 필요가 없다면 그것은 단지 불쾌한 것입니다.

누구나 비슷한 수업 경험이 있습니까? API에 결국 수용되어 경고가 제거되었거나 동일한 작업을 수행하는 다른 방법으로 바뀌 었습니까? 이 점에 대해 걱정할 필요가 있습니까?

참고로, 나는 이것을 읽고 :

How to distribute AWTUtilities

답변

4

오라클 documentation 상태 :

Note: the com.sun.awt.AWTUtilities class is not part of an officially supported API and appears as an implementation detail. The API is only meant for limited use outside of the core platform. It may change drastically between update releases, and it may even be removed or be moved in some other packages or classes. The class should be used via Java Reflection. Supported and public API will appear in the next major JDK release.

JDK 7은 그래서 잠시 될 수 오는 오랜 시간이했습니다. 당신이 그것을 사용해야하는지 여부는 귀사 만 대답 할 수있는 위험 관리 질문입니다. 배포 된 JRE가 보장 될 수있는 내부 애플리케이션에 대해 이야기하고 있다면 호환 가능한 JRE를 보장 할 수 있으므로 문제가 발생하지는 않습니다. 외부 고객에게 배치하는 것에 대해 이야기하는 중이라면이 임시 API가 변경되면 지원 계획이 필요합니다.

snippet에 따라 SWT에서 쉘을 만든 다음 응용 프로그램에서 사용하기 위해 프레임을 얻기 위해 SWT_AWT 브리지를 사용하는 것이 작업을 수행하는 안정적인 방법 : 당신은 그냥

java.awt.Frame frame = SWT_AWT.new_Frame(shell); 

을 배포하는 경우 (예 : Windows) 단일 SWT jar와 기본 라이브러리를 버리기. 여러 플랫폼을 타겟팅하는 경우이 문제가 발생합니다.

AWTUtilities 위험을 처리하거나 SWT_AWT 브리지를 사용합니다.

편집 :

일부 시간이 경과하고 자바 7 밖으로이다. Java Tutorials에서이를 수행하기 위해 공식적으로 지원되는 방법에 대한 문서가 있습니다. 맨 아래에 "모양이있는 창을 구현하는 방법"절이 예제를 제공합니다. 물론 이것은 당신이, 당신은 단지

this.setShape(shape); 

또는이

Frame1.setShape(shape); 

의 많은처럼 프레임 이름을 사용할 수 있습니다 자바 7

+0

사용자 지정 셸을 만들기 때문에 SWT_AWT를 사용할 수 없습니다. 그래서 위험을 감수해야합니다. Java 7 이전까지이 클래스가 제거 될까봐 걱정할 필요가 없다는 것을 알았 기 때문에 좋습니다. –

0

당신은 새로운 Frame 객체를 필요로하지 않는 강제 할 수 가정 AWT 메소드가 java.awt에 적용되었습니다.프레임