【发布时间】:2014-07-30 14:37:36
【问题描述】:
我正在开发一个 Java 程序,该程序接收大量文件(最大 3000 个)以及关联的 1/0 数组。目前我有一个数组的可视化,其中有一个网格,其中每个框都用黑色填充 1 或白色填充 0。绘制时它运行良好,但需要大约一分钟才能完全加载(同时可能会锁定计算机。 ) 有什么办法可以:1、在窗口完成之前不显示窗口
(即创建JFrame,
//绘制窗口
frame.setVisible(true))
还有2,跟踪进程的进度,以便我可以使用进度条吗?
编辑:我可以运行一个线程来绘制它,然后简单地创建一个 while 循环以仅在线程完成后显示它吗?
【问题讨论】:
-
听起来你需要做一些线程。循环摆动工人。 (我相信这就是它的名字)
-
使用SwingUtilities.invokeLater() 或EventQueue.invokeLater() 来确保EDT 被正确初始化,但不要在其中调用任何重载方法。
-
我对此很熟悉,并打算试一试,但我认为它不会解决它进行如此长时间的框架设置的问题。线程不是意味着GUI不会锁定吗?我仍然会遇到页面在加载时可见的问题(并导致系统出现问题>)