Flickering when repainting a JPanel inside a JScrollPAne
- by pR0Ps
I'm having a problem with repainting a JPanel inside a JScrollPane.
Basically, I'm just trying to 'wrap' my existing EditPanel (it originally extended JPanel) into a JScrollPane.
It seems that the JPanel updates too often (mass flickering). How would I stop this from happening? I tried using the setIgnoreRepaint() but it didn't seem to do anything.
Will this current implementation work or would I need to create another inner class to fine-tune the JPanel I'm using to display graphics?
Skeleton code:
public class MyProgram extends JFrame{
public MyProgram(){
super();
add(new EditPanel());
pack();
}
private class EditPanel extends JScrollPane{
private JPanel graphicsPanel;
public EditPanel(){
graphicsPanel = new JPanel();
}
public void paintComponent(Graphics g){
graphicsPanel.revalidate(); //update the scrollpane to current panel size
repaint();
Graphics g2 = graphicsPanel.getGraphics();
g2.drawImage(imageToDraw, 0, 0, null);
}
}
}