[Swing] JWindow 를 쓰다가 오륜줄 알았다.


작성자 : 김민석 ( lemonfish at gmail dot com )
대학때 JFrame 의 타이틀 바가 무척이나 거추장 스러워서 짜증이 났던 적이 있다. 전에 Window 클래스로 타이틀 없는 생뚱맞은 GUI 프로그램을 만들어 본적이 있던터라. JWindow 를 사용해서 GUI 를 만들었는데 왠걸 이녀석은 당췌 포커스를 받지 않는 것이었다. 본좌가 관심을 가져 주겠다는데 굳이 뿌리쳐 대는 녀석을 이리 달래고 저리달래고, 이 코드를 권해보고 저 코드를 권해봐도 무작정 사양하는 통에 미치고 환장할 뻔 했었다. 그런데. 역시 사람은 공부를 해야하는지 Focus Subsystem 에 대한 Sun 의 해설을 읽은 뒤로 머리를 벽에 몇번 박았는지 모른다. 진행중인 프로젝트를 하기 싫어서 놀던 중에 문득 생각나서 고 부분을 포스팅 해본다.

" JWindow and focus: To use a JWindow component in your GUI, you should know that the JWindow component's owning frame must be visible in order for any components in the window to get the focus. By default, if you do not specify an owning frame fora JWindow component, an invisible owning frame is created for it. The result is that components in the JWindow component might not be able to get the focus.The solution is either to specify a visible owning frame when creating the JWindow component, or to use an undecorated JFrame component instead. "

- 참고 : http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html -


뭔소리냐면, JWindow 는 해당 객체를 소유하는 Frame 계열의 객체를 지정해 주지않으면 포커스를 받지 않는다는 말삼이다. 제기랄. 뭔 그런 클래스가 다있어!!!! 라는 생각이 들지만. 그래도 그거 대신 JFrame 을 Headless 로 만들어서 쓸 수 있으니 다행이 아닌가. ㅋ

JFrame frame = new JFrame();
frame.setUndecorated(true);

코드는 디질라게 간단하다. 근데 주의사항이 하나 있다. setVisible 호출하기 전에 setUndecorated 를 호출해야된다. 안그러면 예외가 난다. 게다가 setVisible 호출하고 난다음에는 없던걸 있게 한다던지, 있던걸 없게 한다던지 그런건 안된다. ㅋㅋ 짜식들. 쉽게좀 가지. 쳇.



이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by killy | 2007/08/03 23:08 | Java | 트랙백(1) | 덧글(4)

트랙백 주소 : http://lemonfish.egloos.com/tb/3659023
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 〃하늘을 날다 〃 at 2009/06/11 23:38

제목 : [ java ] - 펌 JFrame setUndec..
대학때 JFrame 의 타이틀 바가 무척이나 거추장 스러워서 짜증이 났던 적이 있다. 전에 Window 클래스로 타이틀 없는 생뚱맞은 GUI 프로그램을 만들어 본적이 있던터라. JWindow 를 사용해서 GUI 를 만들었는데 왠걸 이녀석은 당췌 포커스를 받지 않는 것이었다. 본좌가 관심을 가져 주겠다는데 굳이 뿌리쳐 대는 녀석을 이리 달래고 저리달래고, 이 코드를 권해보고 저 코드를 권해봐도 무작정 사양하는 통에 미치고 환장할 뻔 했었다. 그런......more

Commented by 선화 at 2009/06/11 23:36

필요한 정보를 여기서 볼수있었군요... 블로그로 살포시 퍼갑니다..
Commented by killy at 2009/06/12 01:49
참고가 되셨다니 다행이네요. ^-^;;
Commented by SH at 2009/10/14 16:14
감사합니다! 포커스를 안 먹어서 저도 카페며 지식인이며 미친듯이 검색했는데 뭐 하나 나오질 않더군요 ㅠㅠ 정말 도움이 많이 됐습니다!
Commented by killy at 2009/10/29 07:32
어휴~ 얼마나 난감하셨을지 안봐도 비디옵니다. 고생하셨어요~

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶


동영상 한판 때리시죠? ^-^
rss

skin by FreeCssTemplates