2013-06-29 21 views
5

Có cách nào tốt hơn để có được Biểu tượng của một JLabel trong một thùng chứa như một BufferedImage whithout nhiều phôi không?JLabel có được hình ảnh

Component[] components = container.getComponents(); 
BufferedImage image = ((BufferedImage) ((ImageIcon) ((JLabel) components[i]).getIcon()).getImage()); 
+5

Vâng, sử dụng các biến tài liệu tham khảo chứ không phải là 'getComponents nguy hiểm tiềm tàng() '. tức là 'myLabel.getIcon(). getImage()'. –

+0

Hmm, tôi không nghĩ rằng tôi có thể sử dụng bất kỳ tài liệu tham khảo nào. Tôi cần hình ảnh bên trong phương thức 'layoutContainer (Container container)' được thực hiện bởi layoutManager của tôi để mở rộng tỷ lệ với phần còn lại của gui. – Sp0tlight

+0

Chúng tôi đã có một trường hợp yêu cầu chuyển dịch. Cân nhắc cho chúng tôi biết thêm thông tin, đủ để chúng tôi có thể hiểu và trả lời đầy đủ câu hỏi của bạn. Xin hãy xem tại đây: [Jon Skeet: Viết câu hỏi hoàn hảo] (http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx). –

Trả lời

2

Để có được một hình ảnh đệm từ một JLabel, bạn thực hiện như sau (đó là những gì câu trả lời ban đầu của bạn hỏi):

Icon icon = label.getIcon(); 
BufferedImage bi = new BufferedImage(icon.getIconWidth(), 
       icon.getIconHeight(),BufferedImage.TYPE_INT_RGB); 
Các vấn đề liên quan