<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Ok, thank you.<br><br>How do I use DefaultPortrayalService ? I should have a look to the source code...<br><br>Here below is a piece of code I just wrote to test volatileimage on this computer. It works correctly, but I'm sure it is possible to improve...<br><br>Best regards, and have a nice week-end,<br><br>Sam<br><br>import java.awt.Graphics;<br>import java.awt.Graphics2D;<br>import java.awt.GraphicsConfiguration;<br>import java.awt.GraphicsDevice;<br>import java.awt.GraphicsEnvironment;<br>import java.awt.image.BufferedImage;<br>import java.awt.image.VolatileImage;<br>import java.io.File;<br>import java.io.IOException;<br>import java.util.logging.Level;<br>import java.util.logging.Logger;<br>import javax.imageio.ImageIO;<br>import javax.swing.JPanel;<br><br>public class TestPanel extends JPanel{<br><br>&nbsp;&nbsp;&nbsp; private GraphicsEnvironment env;<br>&nbsp;&nbsp;&nbsp; private GraphicsDevice device;<br>&nbsp;&nbsp;&nbsp; private GraphicsConfiguration config;<br>&nbsp;&nbsp;&nbsp; private VolatileImage vo;<br><br>&nbsp;&nbsp;&nbsp; private BufferedImage globalBU;<br><br>&nbsp;&nbsp;&nbsp; public TestPanel(){<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; env = GraphicsEnvironment.getLocalGraphicsEnvironment();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device = env.getDefaultScreenDevice();<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; globalBU = getBufferedImage();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (IOException ex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Logger.getLogger(TestPanel.class.getName()).log(Level.SEVERE, null, ex);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.setSize(globalBU.getWidth(), globalBU.getHeight());<br><br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; private BufferedImage getBufferedImage() throws IOException<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage image = ImageIO.read(new File("some_picture.png"));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config = device.getDefaultConfiguration();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BufferedImage result = config.createCompatibleImage(image.getWidth(), image.getHeight(), image.getTransparency());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.getGraphics().drawImage(image, 0, 0, null);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result.getGraphics().dispose();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return result;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp; private void createCompatibleVolatileImage()<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config = device.getDefaultConfiguration();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vo = config.createCompatibleVolatileImage(globalBU.getWidth(), globalBU.getHeight());<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp; private void renderVolatileImage()<br>&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vo.getGraphics().drawImage(globalBU, 0, 0, null);<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp; @Override<br>&nbsp;&nbsp;&nbsp;&nbsp; public void paint(Graphics g) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Create the VolatileImage<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Graphics2D g2 = (Graphics2D) g;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCompatibleVolatileImage();<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Test if surface is lost and restore it.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GraphicsConfiguration gc = this.getGraphicsConfiguration();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int valCode = vo.validate(gc);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // No need to check for IMAGE_RESTORED since we are<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // to re-render the image anyway.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(valCode==VolatileImage.IMAGE_INCOMPATIBLE){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; createCompatibleVolatileImage();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Render to the Image<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; renderVolatileImage();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Render image to screen.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g2.drawImage(vo, 0, 0, this);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Test if content is lost<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } while(vo.contentsLost());<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>}<br><br><br /><hr />Rencontrez ceux qui partagent les mêmes intérêts: <a href='http://fr.friendlocator.ch' target='_new'>Recherche d'amis Messenger</a></body>
</html>