我正在制作一个Java Messenger。我做了一个登录对话框,当我点击连接按钮时,在加载时会出现一个动画GIF。
问题是当我的MySQL连接和查询正在处理时,动画GIF停止移动。
我在新线程中抛出MySQL连接和查询但仍然相同:
Thread connectionThread = new Thread(new Runnable() {
public void run() {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//Database conection
OlaDB.createConnection();
...
我可以做些什么来避免我的GIF冻结?
答案 0 :(得分:6)
当Swing程序需要执行长时间运行的任务时,它通常使用工作线程之一,也称为后台线程。
查看SwingWorker和Using a Swing Worker Thread.
还可以阅读Concurrency in Swing,了解有关GUI冻结的原因以及使用Swing Worker的工作示例的更多信息。 (通过@camickr)