2009-10-19 7 views
0

Java 애플릿을 국제화하려고하고 있습니다. 오른쪽에서 왼쪽으로 작성된 지원 스크립트가 있습니다. 뷰에 자동으로 추가 된 모든 Java 구성 요소에 대해 구성 요소 방향을 설정하려고합니다.모든 JInternalFrame 이벤트 듣기 - Java

c.getToolkit().addAWTEventListener(listener, AWTEvent.WINDOW_EVENT_MASK); 

... 그리고 각 창 추가에 C/O를 설정뿐만 아니라 C를 설정하는 구성 요소 리스너를 추가 :

는 내 솔루션은 지금까지 모두의 AWTEvent의 창문을 사용하여 듣고있다

는 마스크 나중에 창에 추가 된 모든 구성 요소에/o

내 문제는 JInternalFrames가이 솔루션으로 처리되지 않는다는 것입니다. Windows 용과 마찬가지로 이러한 이벤트에 대한 다른 수신기를 추가 할 수 있기를 바랍니다. 어떤 아이디어?

또는 다른 방법으로 애플릿의 모든 구성 요소에 대한 스크립트 방향을 처리하는 방법이 있습니까?

답변

0

JDesktopPane에 ContainerListener를 추가합니다. 구성 요소가 데스크탑에 추가되면 방향을 변경할 수 있습니다.

+0

나는 이미 이것을 가지고 있었지만 그것이 작동하지 않는다고 생각했다 ... 나는 이제 그것이 문제를 일으키는 또 다른 문제라는 것을 깨달았다. 어쨌든 고마워. –

0

모든 JInternalFrame에 핸들이 있습니까? 그렇다면 내부 프레임 수신기를 사용해보십시오.

http://java.sun.com/javase/6/docs/api/javax/swing/event/InternalFrameListener.html

이는 AWT의 WindowListener에 아날로그 있다고 지적한다.

+0

감사합니다. 나는 일종의 일을하지만 빠른 검색을 할 때 83 가지의 사용법이 있기 때문에 오히려하지 않을 것입니다 ... 나는 한 곳에서 모든 것을 할 것입니다. –

0

AWTEventListener 현재 Toolkit에있는 경우에만 툴킷에서 오는 이벤트가 제공됩니다. 일반적으로 경량 구성 요소에 의해 생성 된 이벤트는 마우스 또는 키 이벤트로 인해 발생합니다.

프로세스의 모든 것을 묻는 것은 대개 매우 나쁜 신호입니다. 저수준 코드가 전체 프로그램에 대한 정책을 만들고 있습니다. 훨씬 더 나은 접근법은 "실현"되기 전에 컴포넌트를 생성하는 곳 가까이에 리스너를 추가하는 것입니다. 이것은 반복 코드이지만, 이미 반복 코드가있을 것입니다. 그래서 방법으로 고려해보십시오. 그런 다음 글로벌 접근 방식을 망가뜨린 적용 사례가없는 경우를 제외하고는 업데이트 할 수있는 곳이 하나뿐입니다.