2009-01-15 45 views
8

Tôi đang sử dụng dải băng Flamingo và giao diện của Văn phòng Chất thay thế 2007.Tôi có thể sử dụng hai giao diện khác nhau và cảm nhận trong cùng một ứng dụng Swing không?

Tất nhiên bây giờ mọi điều khiển đều có giao diện này, ngay cả trên các hộp thoại.

Những gì tôi muốn là một cái gì đó giống như trong Office 2007, nơi các ruy băng có giao diện Office 2007 của họ, nhưng các điều khiển khác giữ nguyên bản Vista/XP của họ.

Có thể gán các điều khiển nhất định với giao diện khác không? Có lẽ sử dụng một số loại chuỗi hoặc một cái nhìn và cảm nhận proxy?

Trả lời

9

Tôi vừa phát hiện: Vì Substance 5.0, SKIN_PROPERTY khả dụng.

Nó cho phép gán da khác nhau để khác nhau JRootPanes (ví dụ: JDialog, JFrame, JInternalFrame)

Một mẹo nhỏ: Tôi ghi đè JInternalFrame để loại bỏ các biên giới phụ và khung tiêu đề để nó trông giống như một bảng điều khiển không biên giới. Bằng cách đó, bạn có thể tạo ấn tượng, rằng các phần khác nhau của biểu mẫu/hộp thoại có giao diện khác nhau.

2

Đây là thư viện tự động hóa sẽ thay đổi giao diện. Tôi không chắc chắn điều này sẽ làm cho mọi thành phần theo một cách khác, nhưng bạn nên nhìn vào nó. pbjar.org

Cuốn sách này sẽ hữu ích nếu bạn muốn đi sâu vào cái nhìn và cảm nhận /java-look-and-feel-design-guidelines-second-edition

tôi sẽ vui mừng khi thấy một số mã ví dụ, nếu ai đó có thể viết nó, cảm thấy tự do để có được bắt đầu.

EDIT:

Trong chủ đề diễn đàn này Thread tôi tìm thấy các mô tả sau đây

Swing sử dụng một Look & Feel (một PLAF). PLAF không được đính kèm theo cấp JFrame . Chúng được đính kèm theo mức trên mỗi máy ảo. Hầu như không thể trộn PLAF trong một ứng dụng. Tôi có đã thấy một vài lần thử, tất cả đều không thành công.

+0

Thực tế là trên mỗi AppContext. Bạn sẽ có thể có applet trên các trang web khác nhau có cài đặt PL & F khác nhau. –

1

Thật không may là rất nhiều thứ "psuedo-global" đằng sau hậu trường. AFAIK, cách duy nhất để làm điều đó một cách nhất quán là sử dụng API riêng tư AppContext. Mỗi AppContext có chuỗi gửi sự kiện riêng và các "quả cầu psuedo" khác.

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