【发布时间】:2011-11-02 17:01:26
【问题描述】:
我正在编写一个通过 DES 算法加密和解密输入的 java 应用程序。首先,我在没有 GUI 的情况下制作了它,并使用 System.out.print(); 在输出窗口中打印了中间步骤。当输入很大时,计算可能需要一段时间,但是当使用输出窗口时,中间步骤会在计算时一个一个地打印出来。那太完美了。
现在我为我的程序制作了一个 GUI,使用名为 txtDebug 的 JTextArea 来打印中间步骤:
public static void debug(String tekst){
txtDebug.setText(txtDebug.getText()+tekst+"\n");}
问题:中间步骤不再一一打印。如果输入很大,程序就会冻结,什么也不做,直到计算完成,然后它会一次性打印所有中间步骤。
另一个问题:当我不使用 GUI 时,程序从来没有崩溃过,现在如果输入足够大,程序就会崩溃:它会冻结并且永远不会恢复。
有什么帮助吗?
【问题讨论】:
标签: java debugging swing freeze concurrency