//Image de fundoimagem=newImageIcon(getClass().getResource("C:/imagem/mickey.JPG"));seuPanel=newJPanel(){protectedvoidpaintComponent(Graphicsg){super.paintComponent(g);imagem.paintIcon(this,g,20,20);}};
Mark, por que usar BufferedImage se ele vai usar a imagem só como apresentação e não vai fazer operações sobre ela?
Se ainda quiser usar ImageIcon, toma:
importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.ImageIcon;publicclassT{publicstaticvoidmain(String[]args){JFrameframe=newJFrame("Frame com imagem");ImageIconimagem=newImageIcon("C:\Documents and Settings\asd.jpg");JLabellabel=newJLabel(imagem);frame.getContentPane().add(label);frame.setSize(500,500);frame.setVisible(true);}}
Abraço.
M
marcobiscaro2112
Quando se usa:
getClass().getResource("algumaCoisaAqui")
O caminho do arquivo a ser carregado deve iniciar com ‘/’ indicando que o local em que a imagem está é relativa ao diretório do projeto.
Sua aplicação funcionará? SIm. No seu computador. Se transferido para outro sem a imagem na mesma pasta (ou ainda para outro sistema operacional) não vai prestar…
Procure manter todas as dependências do projeto dentro dele. Se você usa imagens, por exemplo, crie uma estrutura similar a essa:
Lembre-se das maiúsculas e minúsculas: o Windows é um dos poucos SO’s que não são case sensitive na estrutura de arquivos.
** A pasta lib existe apenas se houverem dependências de outras APIs ou frameworks que serão exportados com seu projeto.
Seguir essa idéia permite portabilidade. Se você tivesse uma estrutura assim, bastaria usar no código:
Mark, por que usar BufferedImage se ele vai usar a imagem só como apresentação e não vai fazer operações sobre ela?
Não é por que ele vai usar só como apresentação que ele precisa usar o ImageIcon… E com BufferedImage voce tem a possibilidade de extendela como bem quiser… girar…cortar… E essas operações são bem comuns…
E em alguns programas meus eu uso a BufferedImage só como apresentação mesmo e não tem nenhum problema.