Witam
Chciałbym w moim programie zastosować podwójne buforowanie lecz przy kompilacji wyskakuje mi bład i wskazuje na
buffer = (Graphics2D)image.getGraphics();
Błąd wyskakuje w konstruktorze.
Jeżeli ktoś mógłby poprawić bylbym wdzięczny
Oto cały kod mojej aplikacji
Klasa Main
public class Main {
public static void main (String args[])
{
EventQueue.invokeLater(new Runnable(){
public void run()
{
Ramka frame = new Ramka();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
Klasa Ramka
public class Ramka extends JFrame
{
Obraz display;
BufferStrategy strategia;
public Ramka()
{
display = new Obraz();
add(display);
display.setVisible(true);
}}
Klasa Obraz - tu występuje błąd, do rysowania
public class Obraz extends JPanel {
Image image;
Graphics2D buffer;
Graphics2D device;
public Obraz()
{
int widht = getWidth();
int height = getHeight();
image = createImage(widht, height);
buffer = (Graphics2D)image.getGraphics();
buffer.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
device = (Graphics2D)getGraphics();
device.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
}
public void rysuj()
{
device.drawImage(image, 0, 0, null);
buffer.clearRect(0, 0, getWidth(), getHeight());
}
}