2009-11-04 4 views
6

구성 요소가 있습니다. 구성 요소의 툴팁은 setToolTipText() 메소드에 의해 설정됩니다. 첫 번째 모니터에서는 모든 것이 잘 동작합니다. 이제 프레임을 두 번째 모니터로 이동하면 도구 모서리가 모니터 가장자리에 표시됩니다 (앞면 모니터 옆). 이는이 구성 요소의 툴팁에서만 발생합니다. 문제는 다른 컴퓨터에서도 발생합니다. 아직, 나는 단지 비스타로 그것을 시험했다.두 번째 모니터의 도구 설명이 모니터 가장자리에 표시됩니다.

왜 이런가요? 스윙의 버그입니까? 어떻게 해결할 수 있습니까?

툴팁 텍스트는 마우스 커서 위치에 따라 다릅니다. 따라서 코드를 편집하고 getToolTipText (MouseEvent e) 메서드를 재정의 할 수 있습니다. 이 코드의 변경을 시작하기 전에이 문제의 원인을 아는 것은 정말 좋을 것입니다.

미리 감사드립니다.

답변

7

Java 버그 데이터베이스에는 여러 가지 버그 티켓이 있는데 예를 들면 다음과 같습니다.

Problem with Action button tooltips with some multiple monitor configurations

에서

JToolTip in JApplet will place tooltip in wrong monitor

Tooltip issue when using dual monitor (dual head) configuration.

가 서로 중복으로 폐쇄되어, 하나는 고정 될 수 있다고 주장하고 다른 하나는 고정 - 알 세트를 갖는다. 일부 사용자가 게시

한 가지 해결 방법은

frame.pack(); 
frame.setLocation(location); 
frame.setLocation(new Point(0, 0)); 
frame.setLocation(location); 

kieron.wilkinson

입니다

이 작동하는 이유는 setLocation() 결국 호출되어 있다는 것입니다 차례로 라는 메소드를 호출 Component.reshape()Component.notifyNewBounds(boolean resized, boolean moved), 은 구성 요소 계층 01을 가로 지릅니다.각 구성 요소 경계를 설정합니다. 기본값으로 이것은 "게으르게"수행되지만 창이 이동하기 전에 설정되지 않습니다. 이 이동되었습니다. 위 코드는 으로 설정합니다.

이렇게하면 한 화면에서 다른 화면으로 창을 드래그 한 후 도구 설명이 제대로 작동하기 시작합니다.

+0

감사합니다. 조사해보아야 할 연구가 있다고 생각합니다. 첫 번째 테스트 후에 잘 작동하는 getToolTipText 코드를 변경하려고했습니다. –

+0

글쎄, 구글 검색과 세 버그 리포트 + 그들에 대한 게시물을 읽고. 그런 다음 답을 씁니다. 문제 없어 – jitter