2012-05-30 38 views
6

Một đoạn mã của tôi là dưới đây:Java.awt.SystemTray không hiển thị biểu tượng trên khay đúng

SystemTray systray = SystemTray.getSystemTray(); 

try{ 
    TrayIcon trayicon = new TrayIcon(new ImageIO.read(new File("icon.png")),"I am a description"); 
} 
catch(IOException e) { 
    e.printStackTrace(); 
} 

Tất cả mọi thứ chạy rất tốt nhưng hình ảnh hiển thị trong khay hệ thống được cắt đứt. Chỉ phần trên bên trái được hiển thị trừ khi tôi thu nhỏ xuống 16x16 (từ 40x40). icon.png là tệp hình ảnh được tải đúng (không phải là null). Tôi nghĩ rằng các tệp biểu tượng khay hệ thống có thể là 40px?

Ai đó có thể giải thích cho tôi vấn đề ở đây là gì?

Trả lời

11

Khả năng bao gồm TrayIcon.setImageAutoSize() và có thể HĐH của bạn (giả sử Windows) được đặt thành một loại màn hình có độ phân giải cao như 120 hoặc 144 và Java không thích ứng với điều đó một cách chính xác.

+0

Ồ, tôi hoàn toàn bỏ lỡ chức năng đó. Cảm ơn! – user1418454

+1

Tôi là loại người thích đọc mã nguồn vì vậy tôi đã đi và tìm thấy [triển khai cửa sổ] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147 /sun/awt/windows/WTrayIconPeer.java#WTrayIconPeer) của KhayIcon. Có vẻ như nó nhắm mục tiêu 16x16 nếu bạn không bật tự động. – Jim

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