2012-08-20 17 views
18

Tôi đang duy trì một số mã triển khai Giao diện tùy chỉnh trong Java. Trong khi thực hiện một nâng cấp gần đây của phiên bản Java (vì lý do khác) tôi thấy rằng giao diện đã phá vỡ do một lĩnh vực không tìm thấy trênJava Nhìn và cảm nhận - cách phá vỡ sự phụ thuộc vào sun.swing.SwingUtilities2

sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET; 

Đây là trong một lớp học mà là chặt chẽ dựa trên BasicMenuItemUI.layoutMenuItem() khoảng Java 6u02 (here's the source). Tôi đã thấy rằng Oracle đã tái xác định mã của họ để bao gồm một MenuItemLayoutHelper trong phiên bản đích mới mà tôi đang sử dụng, Java 6u31.

Tôi chỉ có thể sử dụng MenuItemLayoutHelper nhưng điều đó không giải quyết được vấn đề mà nó chỉ đặt nó cho đến khi lần tiếp theo nội bộ Java được thay đổi xung quanh. Vì vậy, tôi đã giảm giá này như một giải pháp.

Tôi sau khi một số lời khuyên về cách thực hiện bố cục trái sang phải tương tự như BasicMenuItemUI mà không cần phải biết bố cục văn bản tối đa của bố mẹ (loại bỏ phụ thuộc xấu trên sun.swing.SwingUtilities).

+17

có lẽ không phải là một tùy chọn để lấy người giới thiệu sự phụ thuộc đó, khóa cô vào phòng cho đến khi tất cả được cố định :-) Vào cuối ngày, không có nhiều việc phải làm ... ngoại trừ ... ho .. c & p, ehh, tôi có nghĩa là nhìn vào mã mặt trời và thực hiện một phiên bản refactored. – kleopatra

+9

@kleopatra Mẹ tôi cảnh báo tôi ** không ** để "nhìn mặt trời". (muses) Cô đã không đề cập đến "mã" mặc dù .. –

+0

Ouch ... đây là con áp phích cho việc xây dựng các tiêu chuẩn mã thời gian thực thi. – Gus

Trả lời

4

Như albfan đã nói, bạn không thể. Bạn phải phụ thuộc vào mã, sao chép lớp và sử dụng nó trong chương trình của bạn, không sử dụng nó và sử dụng thư viện của bên thứ ba, hoặc không sử dụng tính năng đó.

2

Ok có thể đã một thời gian nhưng tôi đã tìm ra rằng tôi chỉ có thể sử dụng hằng số của riêng mình thay vì sun.swing.SwingUtilities2.BASICMENUITEMUI_MAX_TEXT_OFFSET miễn là nó được sử dụng nhất quán trong mã vi phạm. Không có nghĩa là một giải pháp lý tưởng.

Khi hàng nhập khẩu lộn ngược từ các gói mặt trời đã đi vào kiểm tra quy tắc mã hóa.