Ich las dies: http://www.dmc.fmph.uniba.sk/public_html/doc/Java/ch10.htm, um mir zu helfen, ein Verständnis von Runnables und das Applet und beschlossen, diesen Code zu testen. Innerhalb des Threads wird jedoch die repaint() -Methode nicht aufgerufen.Repaint in Runnable Java
public class test extends Applet implements Runnable{
int hello;
public void start(){
Thread run = new Thread(this);
run.start();
}
public void run() {
for (int i = 0; i < 30; i++){
hello = i;
repaint();
}
}
public void paint(Graphics g){
System.out.println(hello);
}
}
Ich würde meine Ergebnisse erwarten so etwas wie zu sein:
0
1
2
...
29
jedoch stattdessen erhalte ich:
29
29
und ich verstehe nicht, warum. Liegt es daran, dass ich keine stop() -Methode habe?
Mehrfache Aufrufe von 'repaint()' in schneller Folge werden normalerweise in einem einzigen Aufruf zusammengefasst. 1) Warum ein Applet codieren? Wenn es aufgrund der Angabe des Lehrers geschieht, verweisen Sie bitte auf [Warum CS-Lehrer ** aufhören sollten ** Java-Applets zu unterrichten] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-teaching-Java-Applets /). 2) Warum AWT verwenden? Siehe [diese Antwort] (http://stackoverflow.com/questions/6255106/java-gui-listeners-without-awt/6255978#6255978) aus vielen guten Gründen, um AWT-Komponenten zugunsten von Swing zu verlassen. –