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).
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
@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ù .. –
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