티스토리 툴바

보이기/숨기기 가능합니다^^
분류 전체보기 (48)
Linux (2)
Database (6)
C (0)
C++ (0)
C# (9)
Java (9)
TCP / IP (2)
etc... (15)
알고리즘 (0)
보이기/숨기기 가능합니다^^
[ java ] - 펌 JFrame setUndecorated
Java | 2009/06/11 23:37
대학때 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 mustbe 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 iscreated for it. The result is that components in theJWindow component might not be able to get the focus.The solution is either to specify avisible owning frame when creating theJWindow component, or to use an undecoratedJFrame 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 호출하고 난다음에는 없던걸 있게 한다던지, 있던걸 없게 한다던지 그런건 안된다. ㅋㅋ 짜식들. 쉽게좀 가지. 쳇.

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


출처 : http://lemonfish.egloos.com
Trackback 0 : Comment 0
위로
http://gustmder.tistory.com/trackback/102 관련글 쓰기
이전 페이지 다음 페이지
보이기/숨기기 가능합니다^^
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
보이기/숨기기 가능합니다^^
RSSFeed