2012-03-19 5 views
0

기본적으로 브라우저에서 실행되는 애플릿으로 구성된 응용 프로그램이 있습니다. 저는 Mac OS X 용으로이 응용 프로그램의 유효성을 검사 해 왔으며 Windows 또는 Linux에서는 발생하지 않는 포커스 문제와 관련되어있었습니다.Mac OS X (Java)의 중량 구성 요소

예를 들어, JFileChooser를 사용하여 파일을 저장할 디렉토리를 선택할 때마다 문제가 발생합니다. 디렉토리를 선택하고 JFileChooser에서 'ok'를 누르면 Linux의 Windows에서 응용 프로그램을 실행하면 포커스가 JFileChooser를 연 애플릿으로 다시 이동합니다. 그러나 Mac OS X에서 JFileChooser 사용을 마친 후 닫거나 확인을 누르면 포커스가 애플릿으로 되돌아 가지 않습니다. 이 경우 애플릿 내부를 클릭하여 포커스를 다시 가져와야합니다. 이것은 JFileChooser를 사용할 때뿐만 아니라 '헤비급'구성 요소를 사용할 때마다 발생합니다.

나는 이것이 알려진 문제인지 궁금하다. 예를 들어 requestFocus()를 사용하여 처리해야 할까? 당신 중 누구도 전에 이것에 문제가 있었습니까?

+0

초점 + 애플릿 = 문제? 나 전혀 색이 없다. 썬은 포커스와 애플릿과 관련된 많은 것들을 지정하는 것을 결코 고민하지 않았기 때문에 모든 브라우저의 모든 동작은 '정확하다'. 신뢰할 수있는 포커스 동작이 필요한 경우 웹 페이지에서 애플릿을 가져 와서 [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하여 자유롭게 플로팅하는 것이 좋습니다. 그것은 초점 문제를 분류해야합니다. 실제로 생각해 보니 웹 페이지의 족쇄에서 GUI를 해제하려면 JWS를 사용하여 프레임을 시작할 수도 있습니다. ;) –

+0

@AndrewThompson : 애플릿을 자유롭게 떠 다니는 것은 내 경우 옵션이 아닙니다. 애플릿은 브라우저에서 실행해야합니다. –

답변

1

"이 방법의 포커스 동작은 플랫폼에 따라 다르기 때문에 가능한 경우 개발자는 가능한 경우 requestFocusInWindow을 사용하는 것이 좋습니다."

여기에 대답을 참조하십시오 :

java applet not grabbing focus in JRE 1.6.0_29 and up (OS X)이 (내가 봤 : "OSX 브라우저 애플릿 초점 문제") 어떤 OS 나 브라우저에

+0

이 솔루션은 작동하지 않습니다. 전에 해봤 어. 내가 알아 차 렸던 점은 중량이 많은 구성 요소가 열려있을 때 초점을 잃는 것이 브라우저 자체라는 것입니다. –

+0

도움이 되나요? http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/doc-files/FocusSpec.html (검색 헤비급) –