伙计这是我的代码。可以在processing library docs和unfolding maps library docs找到所用库的文档。它在画布中显示Google地图。调用setup()方法一次,然后重复调用draw()方法。一旦按下键盘上的w按钮,当调用keyPressed()时,背景变为白色。
import processing.core.*;
import de.fhpotsdam.unfolding.*;
import de.fhpotsdam.unfolding.providers.Google;
public class MyDefaultEventExample extends PApplet {
private UnfoldingMap map;
public void setup(){
size (800, 600, OPENGL);
map = new UnfoldingMap (this, 50, 50, 700, 500, new Google.GoogleMapProvider());
}
public void draw(){
map.draw();
}
public void keyPressed(){
if(key == 'w'){
background (255, 255, 255);
}
}
}
现在我并没有准确地理解幕后发生的事情。我已经考虑过了,并从中理解了一些东西。我不知道我是否正确。请检查这是否真的发生了。
据我说 -
PApplet类中有一个main方法,只要我运行负责显示画布并调用setup()和draw()方法的程序就会调用它。伪代码(不是非常"精确",只是为了给出我的感受)可以用来描述这个是
public static void main (){
PApplet myApplet = new PApplet();
myApplet.displayCanvas(); //displays a default canvas with a default background lets say gray.
myapplet.setup();// calls the setup method.
/* code for creating and calling a separate thread to handle events. */
// repeatedly calls the draw method until the user closes the canvas window and closes the program
while(!windowClosed){
myApplet.draw();
}
}
另外,伪代码(不是非常"精确",只是为了给出我的感觉的要点)用于监听根据我的单独线程中的事件应该是这样的:
while(!windowClosed){
Event event = listenForEvents();
handleEvent(event); // this accounts for calling keyPressed().
}
这是正确的思维方式还是全部发生在while循环内部的主线程中,或者涉及的线程超过2个。我写下了我的感受。任何建议/帮助将非常感激:)
答案 0 :(得分:0)
查看此SO问题: How do you debug Java Applets?
有关于如何调试applet以及如何列出所有线程的说明。如果有任何工作线程,您将能够确定自己。