部分程序如下:
public void init(){
try {
jsObject=JSObject.getWindow (this);
}
catch (Exception ex) {
ex.printStackTrace();
}
jsObject.eval("javascript:alert('1')");
}
public void run() {
while (true) {
try {
Thread.sleep(5000);
jsObject.eval("javascript:alert('2')");
}
catch (InterruptedException e){}
}
}
applet和多线程启动后,在页面上只有第一个alert显示出来了,多线程函数中的javascritp没有执行
public void init(){
try {
jsObject=JSObject.getWindow (this);
}
catch (Exception ex) {
ex.printStackTrace();
}
jsObject.eval("javascript:alert('1')");
}
public void run() {
while (true) {
try {
Thread.sleep(5000);
jsObject.eval("javascript:alert('2')");
}
catch (InterruptedException e){}
}
}
applet和多线程启动后,在页面上只有第一个alert显示出来了,多线程函数中的javascritp没有执行
public class SerialApplet extends Applet {//implements Runnable
private static int timeout=5000;
//private Thread cardProcess=null;
private CardReader cardReader=null;
private JSObject jsObject=null;
private String pageState;
private String cardState;
private Timer timer;
public void init(){
setLayout(new FlowLayout());
try {
jsObject=JSObject.getWindow (this);
}
catch (Exception ex) {
ex.printStackTrace();
}
jsObject.eval("javascript:alert('2')");
if (cardReader==null) {
cardReader=new CardReader();
cardReader.cardInit();
}
if (timer==null) {
timer=new Timer(timeout,new ActionListener(){public void actionPerformed(ActionEvent e) {
jsObject.eval("javascript:alert('3')");
}});
}
}
public void start() {
timer.start();
}
}调用applet的jsp部分代码如下:
<applet codebase="." code="org.eleit.serial.SerialApplet.class" width="0" height="0" MAYSCRIPT>
</applet>