problemes de double buffering [jbuilder] - Java - Programmation
Marsh Posté le 25-09-2003 à 22:02:38
voici mon code: [java] package dbuffering; import java.awt.*; import java.applet.Applet; /* <APPLET CODE=Dbuffer.class WIDTH=200 HEIGHT=200> </APPLET> */ public class Dbuffer extends Applet implements Runnable { Image image1; Thread thread1; Graphics graphics; int loop_index = 0; boolean goFlag = true; public void init() { image1 = createImage(100, 100); graphics = image1.getGraphics(); //<- erreur } public void start() { thread1 = new Thread(this); thread1.start(); } public void stop() { goFlag = false; } public void run() { while(goFlag){ repaint(); try {Thread.sleep(100);} catch(InterruptedException e) {} } } public void paint (Graphics g) { loop_index += 5; if(loop_index >= 100) loop_index = 5; graphics.setColor(new Color(255, 255, 255)); graphics.fillRect(0, 0, 100, 100); graphics.setColor(new Color(0, 0, 0)); graphics.drawRect(0, 0, loop_index, loop_index); g.drawImage(image1, 10, 10, this); } } [/java] L image est encore égale a null quand on est a la ligne graphics = image1.getGraphics(); On m a dit que c était parce que jbuilder était lent à s initialiser comment faire pour qu'il attend d etre initialisé et ainsi pouvoir exécuter se programme? Ben
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 25-09-2003 à 22:02:38
voici mon code:
[java]
package dbuffering;
import java.awt.*;
import java.applet.Applet;
/*
<APPLET
CODE=Dbuffer.class
WIDTH=200
HEIGHT=200>
</APPLET>
*/
public class Dbuffer extends Applet implements Runnable
{
Image image1;
Thread thread1;
Graphics graphics;
int loop_index = 0;
boolean goFlag = true;
public void init()
{
image1 = createImage(100, 100);
graphics = image1.getGraphics(); //<- erreur
}
public void start()
{
thread1 = new Thread(this);
thread1.start();
}
public void stop()
{
goFlag = false;
}
public void run()
{
while(goFlag){
repaint();
try {Thread.sleep(100);}
catch(InterruptedException e) {}
}
}
public void paint (Graphics g)
{
loop_index += 5;
if(loop_index >= 100) loop_index = 5;
graphics.setColor(new Color(255, 255, 255));
graphics.fillRect(0, 0, 100, 100);
graphics.setColor(new Color(0, 0, 0));
graphics.drawRect(0, 0, loop_index, loop_index);
g.drawImage(image1, 10, 10, this);
}
}
[/java]
L image est encore égale a null quand on est a la ligne graphics = image1.getGraphics();
On m a dit que c était parce que jbuilder était lent à s initialiser comment faire pour qu'il attend d etre initialisé et ainsi pouvoir exécuter se programme?
Ben