2012-04-25 86 views
1

我有一個標籤。我想要渲染圖像。但是下面的代碼會做任何事情。將圖像渲染成標籤

CardLayout cl = (CardLayout) (mainPanel.getLayout()); 
     cl.show(mainPanel, "newPersonaCard"); 
     BufferedImage myPicture = ImageIO.read(new File("C:\\Desktop\\Documents\\Pictures\\always.jpg")); 
     ImageIcon icon = new ImageIcon(myPicture); 
     icon.getImage().flush(); 

我正在使用netbean設計器。

+1

嘗試再次打包容器。 – user1329572 2012-04-25 15:11:29

+2

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。但按鈕點擊加載圖像,也許從[這些圖像](http://pscode.org/media/#image)之一熱鏈接。 – 2012-04-25 15:20:14

+0

http://stackoverflow.com/a/8530698/977676這種解決方案的工作原理,如果你仍然有問題,發佈SSCCE! – COD3BOY 2012-04-25 15:32:31

回答

1

你是對的,在某些情況下,發出一份載有JLabel重繪Icon,那麼你要打電話,

myIcon.getImage().flush(); 
myLabel.setIcon(myIcon); 

休息的方法是在IconJLabel正確實施

+0

嘗試它並編輯我的問題不起作用 – kinkajou 2012-04-26 23:26:25

+0

@ Kitex不知道,真的你必須編輯你的問題與SSCCE和使用(例如)(@Andrew湯普森)的圖像,因爲沒有人可以看到你的代碼的其餘部分和(不想如果我有我的)訪問您的圖像保存在您的硬盤:-) – mKorbel 2012-04-26 23:35:47

1
. 
. 
File file = fileChooser.getSelectedFile(); 

JLabel label = new JLabel(); 
ImageIcon icon = new ImageIcon(file.getAbsolutePath()); 
label.setIcon(icon); 
//add label to panel 
+2

「setLocation」和「setSize」調用是什麼?標籤完全能夠計算自己的尺寸,佈局經理將確定地點 – Robin 2012-04-25 15:17:26

+0

是真實的,固定的。感謝您的評論 – 2012-04-25 15:18:16

1
fileChooser.showDialog(saveBtn2, null); 
File file = fileChooser.getSelectedFile(); 
System.out.println("The path to file "+file.getAbsolutePath());   
ImageIcon icon = new ImageIcon(file.getAbsolutePath()); 
pictureLbl.setIcon(icon); 
+1

我懷疑,儘管''revalidate()'現在是'setIcon(...)'所必需的。無需重新驗證。 – 2012-04-26 03:33:35

+0

@eabraham仍然不工作嘗試所有解決方案 – kinkajou 2012-04-26 23:17:45