Canvas in ScrollPane wird beim scrollen immer neu gezeichnet

smaat

Mitglied
Hallo!

weis denn jemand wie ich verhindern kann, dass beim scrollen die canvas-Zeichenfläche immer neu gezeichnet wird? am besten wär nur ein einmaliges Zeichnen beim aufruf!

Java:
class NetFrame extends JFrame
{
	NetFrame(MyCanvas MC)
	{
		ScrollPane sp = new ScrollPane();
		setExtendedState(Frame.MAXIMIZED_BOTH);
		sp.add(MC);
		add(sp);
		setVisible(true);
	}
}

public class MyCanvas extends Canvas
{ 
            public MyCanvas()
	{
	          setSize(getPreferredSize());
	}
	
	public void paint(Graphics g)
	{
		Image image = null;
		try 
		{
			image = ImageIO.read(new File("src/..."));
		} 
		catch (IOException e) 
		{
			e.printStackTrace();
		}
		g.drawImage(image,0,0,this);
	}
	
	public Dimension getPreferredSize() 
	{
		Image image = null;
		try 
		{
			image = ImageIO.read(new File("src/..."));
		} 
		catch (IOException e) 
		{
			e.printStackTrace();
		}			
		return new Dimension(image.getWidth(null),image.getHeight(null));
	}
}
 
Du hast da einen Denkfehler, warum lädst du das Image nicht einmal ein, speicherst es als Membervariable und musst dann nicht bei jedem Paint erneut einen langsamen Festplattenzugriff machen
 

Zurück
Oben