MEMon
01-09-2006, 12:40
Ciao, ho un ciclo che fa parecchio cose e vorrei che quando inizia a fare una determinata cosa posso stampare una stringa, per intenderci:
public void Iniz(){
Thread t=new Thread(this,"Engine");
t.start();
for(int i=0;i<100000;i++){
stampa("Sto per fare la cosa 1"); //è solo un esempio, comunque imposta la stringa testoMenu
//cosa 1
stampa("Sto per fare la cosa 2");
//cosa 2
stampa("Sto per fare la cosa ecc ecc...");
//cosa ecc ecc...
}
}
public void run(){
while(true){
stampaStringa();
Thread.wait(quanto ti pare);
}
}
public void stampaStringa(){
Graphics2D g2=(Graphics2D)bs.getDrawGraphics();
g2.setColor(Color.black);
g2.fillRect(0,0,ag.getWidth(),ag.getHeight());
g2.setColor(Color.white);
g2.drawString(testoMenu,ag.getWidth()/2-20,ag.getHeight()/2-5);
}
Io non capisco perchè non stampi nulla a video, eppure nel metodo waitMenu entra...è di sicuro un problema di gestione dei thread vero?
ps.il codice è scritto in una classe Runnable, quindi il thread Engine è la classe stessa.
edit: il metodo stampaStringa() è corretto non pensate che l'errore sia lì.
public void Iniz(){
Thread t=new Thread(this,"Engine");
t.start();
for(int i=0;i<100000;i++){
stampa("Sto per fare la cosa 1"); //è solo un esempio, comunque imposta la stringa testoMenu
//cosa 1
stampa("Sto per fare la cosa 2");
//cosa 2
stampa("Sto per fare la cosa ecc ecc...");
//cosa ecc ecc...
}
}
public void run(){
while(true){
stampaStringa();
Thread.wait(quanto ti pare);
}
}
public void stampaStringa(){
Graphics2D g2=(Graphics2D)bs.getDrawGraphics();
g2.setColor(Color.black);
g2.fillRect(0,0,ag.getWidth(),ag.getHeight());
g2.setColor(Color.white);
g2.drawString(testoMenu,ag.getWidth()/2-20,ag.getHeight()/2-5);
}
Io non capisco perchè non stampi nulla a video, eppure nel metodo waitMenu entra...è di sicuro un problema di gestione dei thread vero?
ps.il codice è scritto in una classe Runnable, quindi il thread Engine è la classe stessa.
edit: il metodo stampaStringa() è corretto non pensate che l'errore sia lì.