2009-11-04 47 views
6

Tôi đã có một thành phần. ToolTip của thành phần được thiết lập bởi phương thức setToolTipText(). Trên màn hình đầu tiên mọi thứ hoạt động tốt. Bây giờ khi tôi di chuyển khung đến màn hình thứ hai, các chú giải công cụ được hiển thị ở cạnh của màn hình (ở bên cạnh màn hình firt). Điều này chỉ xảy ra với các chú giải công cụ của thành phần này. Vấn đề cũng xuất hiện trên các máy khác. Tuy nhiên, tôi đã chỉ thử nghiệm nó với Vista.Chú giải công cụ trên màn hình thứ hai được hiển thị ở cạnh màn hình

Tại sao điều này? Đây có phải là lỗi trong Swing không? Làm cách nào để khắc phục sự cố?

Chú giải công cụ phụ thuộc vào vị trí con trỏ chuột. Vì vậy, tôi có thể chỉnh sửa mã và ghi đè phương thức getToolTipText (MouseEvent e). Thật sự rất hay khi biết, đó là lý do cho vấn đề này, trước khi bắt đầu thay đổi mã.

Xin cảm ơn trước.

Trả lời

7

Có một số lỗi trong cơ sở dữ liệu lỗi Java có vẻ liên quan đến điều này, ví dụ:

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 bị đóng như bản sao của nhau, một tuyên bố được cố định và khác đã thiết lập sửa chữa-hiểu.

Một workaround đăng bởi một số người dùng là

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

kieron.wilkinson

Lý do làm việc này là setLocation() cuối cùng Calles Component.reshape() mà lần lượt gọi một phương pháp gọi là Component.notifyNewBounds(boolean resized, boolean moved), trong đó chuyển giao cấu trúc phân cấp thành phần đặt từng thành phần giới hạn. Bằng cách mặc định, việc này được thực hiện "một cách lười biếng" nhưng chúng không được đặt trước khi cửa sổ là được di chuyển. Đoạn mã trên buộc họ được đặt.

Đây cũng là lý do tại sao các chú giải công cụ bắt đầu hoạt động bình thường sau khi kéo cửa sổ từ màn hình này sang màn hình khác.

+0

Cảm ơn, tôi nghĩ bạn đã có một số công việc để nghiên cứu vấn đề này. Tôi đã cố gắng thay đổi mã thành getToolTipText hoạt động tốt sau lần kiểm tra đầu tiên. –

+0

Vâng một vài tìm kiếm google và đọc ba báo cáo lỗi + đăng trên chúng. Sau đó viết câu trả lời. không vấn đề gì – jitter

Các vấn đề liên quan