Java:如何在eventQueue中使用JTableModel

时间:2013-07-30 07:27:10

标签: java swing jtable eventqueue awt-eventqueue

我有一个扩展AbstractTableModel的类,它从数据库中汇集数据,因为它是一个Swing组件我在EventQueue中初始化它,问题是大多数操作,如获取连接和查询DB都在事件中运行,因此需要时间加载JTable。有没有办法将这两个过程分开。

3 个答案:

答案 0 :(得分:1)

使用SwingWorker执行繁重的后台任务以避免阻止EDT。

答案 1 :(得分:0)

如果您需要执行耗时的操作,为了防止GUI冻结,您必须在与事件调度程序线程不同的线程中执行此操作。这些线程称为Worker threads,有关如何使用它们的示例详见this other question

编辑:我找到了一篇非常好的介绍和示例文章here

答案 2 :(得分:-1)

您可以在与事件队列分开的线程中设置表,如下所示:

new Thread() {
    public void run() {
        // setup the table
    }
}.start();

这将导致run中的代码在新线程中运行,这正是您想要的。