Metodo de Imagem -erro de cast

porque acontece esse ERRO???

try { File image = new File("C:\\LojaVirtual\\Img\\Branca.JPG"); BufferedImage imagem = ImageIO.read(image); imagem = (BufferedImage)imagem.getScaledInstance(200, 200, Image.SCALE_AREA_AVERAGING + Image.SCALE_SMOOTH); } catch (IOException e) { System.out.println("Erro ao ler a imagem"); }

ERRO.:

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.BufferedImage
at Telas.Imagem.jToggleButton1ActionPerformed(Imagem.java:192)
at Telas.Imagem.access$200(Imagem.java:21)
at Telas.Imagem$3.actionPerformed(Imagem.java:127)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:291)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

É isso mesmo, você não pode converter o objeto Image retornado pelo getScaledInstance num BufferedImage. Ele não é um BufferedImage, mas um ToolkitImage.

No lugar, use o seguinte:

[code]
try {
BufferedImage imagem = ImageIO.read(new File(“C:/LojaVirtual/Img/Branca.JPG”));

//Use TYPE_INT_ARGB se tiver transparência
BufferedImage scaled = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = scaled.createGraphics();
g2d.drawImage(imagem,
0,0,scaled.getWidth(), scaled.getHeight(), //Coord. do destino
0,0, imagem.getWidth(), imagem.getHeight(), //Coord. da origem
null);
g2d.dispose();
} catch (IOException e) {
System.err.println(“Erro ao ler a imagem”);
e.printStackTrace();
} [/code]

ta dando erro nas linha (metodo get Width, getHeigt

Porque será?

g2d.drawImage(0,0,scaled.getWidth(), scaled.getHeigth(), //Coord. do destino 0,0, imagem.getWidth(), imagem.getHeigth(), //Coord. da origem

Escrevi Height errado.

now ta dando erro (cannot find symbol
symbol: method drawImage) na linha .: ta quase rssrs.vlw - acho que são os parametros os dados inseridos dentro dele.: g2d.drawImage(AQUI)

 g2d.drawImage(0,0,scaled.getWidth(), scaled.getHeight(),

[code] try {
BufferedImage imagem = ImageIO.read(new File(“C:/LojaVirtual/Img/Branca.JPG”));

//Use TYPE_INT_ARGB se tiver transparência
BufferedImage scaled = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = scaled.createGraphics();
g2d.drawImage(0,0,scaled.getWidth(), scaled.getHeight(), //Coord. do destino
0,0, imagem.getWidth(), imagem.getHeight(), //Coord. da origem
null);
g2d.dispose();
} catch (IOException e) {
System.err.println(“Erro ao ler a imagem”);
e.printStackTrace();
}

jLabel1.add(img);
} [/code]

Faltou passar a imagem no primeiro parâmetro.
Veja o javadoc para mais informações. Aliás, vc não conseguiria ter você mesmo olhado no javadoc e corrigido???