2009-11-04 12 views
6

Mam element. Etykieta narzędzia komponentu jest ustawiana za pomocą metody setToolTipText(). Na pierwszym monitorze wszystko działa dobrze. Teraz, kiedy przesuniemy ramkę do drugiego monitora, etykiety narzędzi są wyświetlane na krawędzi monitora (z boku do pierwszego monitora). Dzieje się tak tylko z podpowiedziami tego komponentu. Problem pojawia się również na innych urządzeniach. Jednak testowałem go tylko z Vistą.Etykieta narzędzia na drugim monitorze wyświetlana jest na brzegu monitora.

Dlaczego tak jest? Czy to błąd w Swing? Jak mogę to naprawić?

Tekst podpowiedzi zależy od położenia kursora myszy. Dlatego mogę edytować kod i nadpisać metodę getToolTipText (MouseEvent e). Byłoby naprawdę miło wiedzieć, jaka jest przyczyna tego problemu, przed rozpoczęciem zmiany kodu.

Z góry dziękuję.

Odpowiedz

7

Istnieje kilka zgłoszeń błędów w bazie danych błędów Java, które wydają się być z tym związane.

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

JToolTip in JApplet will place tooltip in wrong monitor

Problem with Action button tooltips with some multiple monitor configurations

ON jest zamknięty w dwóch egzemplarzach, z drugą, podnosi się do zamocowania, a drugi ma rozwiązać zrozumiałe zestawu.

Jeden obejście wysłane przez jakiś użytkownik

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

kieron.wilkinson

Powodem tego jest to, że działa setLocation() ostatecznie calles Component.reshape() co z kolei wywołuje metodę o nazwie Component.notifyNewBounds(boolean resized, boolean moved), który przechodzi przez hierarchię komponentów ustawianie granic poszczególnych składników. Domyślnie jest to robione "leniwie", ale nie są one ustawiane zanim okno zostanie przeniesione na . Powyższy kod zmusza je do ustawienia .

Dlatego właśnie podpowiedzi zaczynają działać poprawnie po przeciągnięciu okna z jednego ekranu do drugiego.

+0

Dzięki, myślę, że miałeś trochę pracy, żeby to zbadać. Próbowałem zmienić kod na getToolTipText, który działa poprawnie po pierwszych testach. –

+0

Cóż, kilka wyszukiwania google i czytanie trzech raportów o błędach + postings na nich. Następnie pisanie odpowiedzi. nie ma problemu – jitter

Powiązane problemy