我正在尝试用游戏实现Java Swing GUI App.该游戏将计算在5秒内点击按钮的次数.
我正在使用sqlite4java我的一个Java GUI项目.它非常简约,因此仅支持单线程应用程序.
我想在5秒后执行一些SQL查询.我在我的按钮的onclick监听器中启动了一个Thread,其run()方法实现如下:
run() {
timeLeft = 5;
score = 0;
while(timeLeft>0)
Thread.sleep(100);
timeLeft -= 0.1;
update left time on GUI;
}
// time is up
execute some SQLite INSERT query here;
}
Run Code Online (Sandbox Code Playgroud)
由于sqlite4java是单线程支持的,它会引发异常:
SQLite error:com.almworks.sqlite4java.SQLiteException:
[-98] DB[1] confined(Thread[main,5,]) used (Thread[Thread-3,6,main])
Run Code Online (Sandbox Code Playgroud)
如何在线程完成后(线程外)执行?抛出异常是因为被调用者线程和实例化数据库的线程(主线程)不一样.
在该线程终止后,如何使主线程发出信号(并在主线程中处理此信号)?
我想要实现的只是执行查询以将用户的分数添加到高分列表中.这不是一个功课,我正在尝试为自己的ORM框架开发一个概念验证应用程序.