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
 

Neue Themen


Zurück
Oben