2016-11-22 45 views
1

我試圖在用BoxLayout格式化的JPanel中放置一個簡單的圖標。當我嘗試在Java中放置ImageIcon時出錯

JPanel panel_4 = new JPanel(); 
    contentPane.add(panel_4, BorderLayout.CENTER); 
    panel_4.setLayout(new BoxLayout(panel_4, BoxLayout.X_AXIS)); 

    ImageIcon seven= new ImageIcon("‪C:\\Users\\alewe\\workspace\\SlotMachine\\Lucky_Seven-128.png"); 

    JLabel lblNewLabel_1 = new JLabel(seven); 
    panel_4.add(lblNewLabel_1); 

當我運行它給我的錯誤「Some characters cannot be mapped using "Cp1252" character encoding」的代碼,我救了UTF-8,現在它開始,但我不能看到圖標。

+0

[這](http://stackoverflow.com/questions/1242581/display-a-jpg-image-on-a-jpanel)可能會幫助 –

回答

1

也許如果你使用setIcon將幫助您:

ImageIcon seven= new ImageIcon("‪C:\\Users\\alewe\\workspace\\SlotMachine\\Lucky_Seven-128.png"); 
JLabel lblNewLabel_1 = new JLabel(); 
//Set your icon to your label 
lblNewLabel_1.setIcon(seven); 
panel_4.add(lblNewLabel_1); 

你可以閱讀更多有關圖標here

+0

非常感謝它的工作原理 – Yuri

+0

歡迎您:) –

0

,您將需要一個InputStream中讀取圖片。使用這樣的:

File f = new File("filepath"); 
     InputStream in=new FileInputStream(f); 
      if (in != null) { 
       ImageIcon imageIcon = new ImageIcon(ImageIO.read(in)); 
       label.setIcon(imageIcon); 
      } else { 
       LOG.debug("No icon found..."); 
      } 
+0

謝謝,它的工作原理,即使我更喜歡setIcon答案:) – Yuri

+0

如果我不使用輸入流,我總是會得到你所做的錯誤。只是複製了接受的答案和錯誤彈出 – XtremeBaumer

相關問題