Olhem meu script, e por favor se alguém souber, o que está errado? o_o
importjava.awt.Graphics;importjava.awt.Image;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JPanel;/* * Cria a Janela e define suas preferências. */publicclassMainextendsJFrame{publicMain(){setSize(400,400);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setTitle("Fake the Sims ~");setLocationRelativeTo(null);Panelp=newPanel();add(p);}publicstaticvoidmain(String[]args){Mainm=newMain();m.setVisible(true);}/* * Adiciona o painel com a imagem do ambiente. */classPanelextendsJPanel{@OverridepublicvoidpaintComponent(Graphicsg){Imageroom=newImageIcon("room.jpg").getImage();g.drawImage(room,0,0,this);}}}
To com problema na mesma coisa, soh q na hora de trokar imagem…
Eu acho q ai falta o .setVisible = true, ou o camminha que esta entre aspas q vc tem que colocar correto
M
marcobiscaro2112
Cada vez que o componente é redesenhado você carrega a mesma imagem. Seria muito mais interessante carregar uma vez só (no construtor, por exemplo). Teste essa classe:
importjava.awt.Graphics;importjava.awt.Image;importjava.io.IOException;importjava.net.URL;importjavax.imageio.ImageIO;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.SwingUtilities;/** * Cria a Janela e define suas preferências. */publicclassMainFrameextendsJFrame{privatestaticfinallongserialVersionUID=1L;/** * Cria uma janela que mostrará a imagem. Recebe como parâmetro o caminho da * imagem a ser carregado (deve começar com '/'). Por exemplo, se o caminho * da imagem é 'raíz do código fonte/imagens/img1.png' a String passada * deverá ser "/imagens/img1.png". * * @param imagePath */publicMainFrame(StringimagePath){setSize(400,400);setDefaultCloseOperation(DISPOSE_ON_CLOSE);setTitle("Fake the Sims ~");setLocationRelativeTo(null);ImagePanelp;try{p=newImagePanel(getClass().getResource(imagePath));add(p);}catch(IOExceptione){JOptionPane.showMessageDialog(this,"Não foi possível"+" carregar a imagem:\n"+e.getMessage(),"Erro",JOptionPane.ERROR_MESSAGE);}}/** * Método main que cria e mostra uma instância da classe MainFrame. * * @param args * parâmetros da linha de comando. */publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){@Overridepublicvoidrun(){newMainFrame("/room.png").setVisible(true);}});}/** * Classe usada para desenhar a imagem. */privateclassImagePanelextendsJPanel{privatestaticfinallongserialVersionUID=1L;/** * A imagem que será desenhada. */privateImageimage;/** * Construtor que carrega a imagem a ser desenhada. * * @param url * a URL usada para carregar a imagem. * @throws IOException * se a imagem não puder ser carregada. */publicImagePanel(URLurl)throwsIOException{if(url==null){thrownewIOException("A imagem especificada não existe.");}image=ImageIO.read(url);}/** * Repinta o componente, desenhando a imagem. */@OverridepublicvoidpaintComponent(Graphicsg){g.drawImage(image,0,0,this);}}}
UMC
A nivel de teste eu recomendaria colocar o caminho todo da imagem!! pra ve se e erro de imagem ou do caminho!!
vlw
B
Beibin
Tente usar um objeto da classe Graphics2D. Dê um cast no objeto da classe Graphics para obter um da Graphics2D, e utilize-o para desenhar a imagem: