April 12th, 2008
JTooltip 이야기 (III)
생각지도 못한 피드백을 받았어요.
제가 쓴 글에 댓글이라니.. 아직도 믿기지 않아요.
'궁색한 heavy weight popup 처리'에 대해 궁금해 하시길래 잠시 짚고 넘어가지요.
이제부터 다시 반말모드 ^^
문제는 heavyweight popup이 불투명하다는데 있다. 이를 투명하게만 처리하면 된다.
이 방법은 여러가지가 있을텐데 여기서는 JNA(Java Native Access)를 사용한다.
JNA에 대해서는 다음에 기회에...
어찌됬던 JNA에 (반)투명 윈도우 처리루틴이 예제로 들어있다. 고마워요 슬쩍해요.
CustomTooltip 클래스에 다음 두 메소드를 추가했다.
JAVA:
-
@Override
-
public void addNotify() {
-
super.addNotify();
-
// popup's window
-
if(isPopupHeavy(w)) {
-
WindowUtils.setWindowTransparent(w, true);
-
}
-
}
-
-
// JButton, for example
-
return w!=sw;
-
}
Heavyweight이니 lightweight이니 하는건 자바 표준에는 없는 개념이기 때문에 어떤 팝업이 생성되었는지를 알아오는 메소드는 제공되지 않는다.
여기서는 툴팁쥔장(버튼)의 윈도우와 툴팁의 윈도우를 얻어와서 서로 다른 인스턴스이면 중량팝업으로 인식토록 했다.
WindowsUtils라는 클래스가 JNA의 Example로 들어있는 클래스인데 어려운일은 알아서 처리해 준다.

툴팁은 이제 그만 할란다. 재미없더라..