JavaSwing:处理JDialog的疏远行为

JavaSwing:处理JDialog的疏远行为,java,swing,dispose,jdialog,Java,Swing,Dispose,Jdialog,我在JScrollPane中有一个90.000行的大型JTable。当我按下按钮使用这些寄存器执行DB操作时,我会在一个单独的线程中显示一个带有JProgressBar的JDialog。当数据库操作结束时,我处理JDialog 不同的行为是,当JScrollPane在init处具有垂直滚动条时,JDialog会立即关闭,但滚动条越低,JDialog关闭所需的时间就越多,如果jscrollpar处于最大值,则最多需要一分钟 我所做的工作是在执行DB操作之前,通过编程将JScrollBar的值设置为

我在JScrollPane中有一个90.000行的大型JTable。当我按下按钮使用这些寄存器执行DB操作时,我会在一个单独的线程中显示一个带有JProgressBar的JDialog。当数据库操作结束时,我处理JDialog

不同的行为是,当JScrollPane在init处具有垂直滚动条时,JDialog会立即关闭,但滚动条越低,JDialog关闭所需的时间就越多,如果jscrollpar处于最大值,则最多需要一分钟

我所做的工作是在执行DB操作之前,通过编程将JScrollBar的值设置为最小值


为什么会这样?在我处理了90.000行的JDialog之后,Java Swing是否可以呈现所有的表?

这是怎么回事?我可能会这样做,但90K只在用户执行没有过滤器的查询时才注册,这不太可能发生。我最感兴趣的是swing行为从未见过这种行为-您没有显示的代码有问题:-尝试以ssccei的形式模拟错误行为我已经多次测试了这个问题:如果卷轴向上,一切正常,如果卷轴向下jdialog.dispose冻结约1分钟。我只有两个线程,一个用于jprogressbar,一个用于db操作,当工作完成时,我在这个线程上调用dispose,我使用日志来隔离有问题的句子,我确定它是jdialog.dispose您是否将主JFrame作为jdialog的父线程?