2013-05-08 92 views
0

我使用NetBean內置的GUI構建器創建了一個Gui,現在我試圖添加允許用戶選擇圖片的代碼,該圖片應該顯示在A JLabel中的ImageIcon中,但我可以沒有得到要顯示的圖像。圖片將不會在JLabel中顯示

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {          
    CardLayout cl = (CardLayout)(mainPanel.getLayout());   
    cl.show(mainPanel, "uploadImage"); 

    File im1 = null; 
    JFileChooser chooser = new JFileChooser(); 
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
      "JPG, GIF, PNG Images", "jpg", "gif", "png"); 
     chooser.setFileFilter(filter); 
     int returnVal = chooser.showOpenDialog(mainPanel); 

    try { 
     if(returnVal == JFileChooser.APPROVE_OPTION) {  
       im1 = chooser.getSelectedFile(); 
     } 
     else { 
      throw new IOException(); 
     } 
     BufferedImage buff = ImageIO.read(im1); 

     BufferedImage resizedImage = new BufferedImage(imagePanel.getWidth(), imagePanel.getHeight(), BufferedImage.TYPE_INT_RGB); 
     Graphics2D g = resizedImage.createGraphics(); 
     g.drawImage(buff, 0, 0, imagePanel.getWidth(), imagePanel.getHeight(), null); 
     g.dispose();   

     JLabel picLabel = new JLabel(new ImageIcon (resizedImage)); 
     picLabel.setVisible(true); 

     imagePanel.add(picLabel);// this is the Jpanel that should displpay the image 
     this.validate(); // this refers to the frame that holds all of the components 
    } catch (IOException ex) { 
     Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex); 
    } 
}  

我試過驗證並重新驗證框架和麪板圖像圖標,但似乎沒有任何工作。任何幫助是極大的讚賞。

+3

爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2013-05-08 09:45:20

回答

0

添加圖像後,您可以嘗試repaint()方法。