Olá pessoal, tudo bom?
Estou com uma dificuldade em uns testes de Buffer que estou fazendo.
No momento estou importando uma imagem PNG para seguir o cursor do mouse dentro de uma JFrame, mas ela pisca constantemente por não ter nenhum buffer.
Estou utilizando o createBufferStrategy(num) para amenizar isso. Já consegui fazer com imagens que eu mesmo contruí por código, mas com imagens externas não consigo.
O código:
[code]import java.awt.event.;
import javax.swing.;
import java.awt.;
import java.awt.image.;
import java.io.;
import javax.imageio.;
public class BufferImagem extends JFrame implements MouseMotionListener{
int dimX, dimY, curX, curY;
Image imagem;
public BufferImagem() throws IOException {
super("Teste com Buffer Duplo com Imagem");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
dimX = 600;
dimY = 600;
setVisible(true);
setResizable(false);
setBounds(350,250,dimX,dimY);
addMouseMotionListener(this);
createBufferStrategy(2);
String minhaImagem = "C:/Users/Vítor Batista/Desktop/Imagem.png";
Toolkit toolkit = Toolkit.getDefaultToolkit();
imagem = toolkit.getImage(minhaImagem);
MediaTracker mediaTracker = new MediaTracker(this);
mediaTracker.addImage(imagem, 0);
}
public void paint(Graphics g){
BufferStrategy bf = this.getBufferStrategy();
try{
//g = bf.getDrawGraphics(); //Aqui está o problema.
//Quando tento adicionar o BufferStrategy, a imagem não aparece. Sem essa linha a imagem fica piscando.
g.clearRect(0,0,dimX,dimY);
g.drawImage(imagem, curX, curY, null);
}finally{
g.dispose();
}
}
public void mouseDragged(MouseEvent e) {
curX = e.getX();
curY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
curX = e.getX();
curY = e.getY();
repaint();
}
}[/code]
Qual seria a solução?
Agradeço a atenção.