我正在编写一个java应用程序,通过DES算法对输入进行加密和解密。首先,我在没有 GUI 的情况下完成了它,并使用 System.out.print(); 在输出窗口中打印了中间步骤。当输入很大时,计算可能需要一段时间,但是当使用输出窗口时,中间步骤会在计算时一一打印出来。太完美了。
现在我为我的程序制作了一个 GUI,使用名为 txtDebug 的 JTextArea 来打印中间步骤:
public static void debug(String tekst){
txtDebug.setText(txtDebug.getText()+tekst+"\n");}
问题:中间步骤不再一一打印。如果输入很大,程序就会卡住,什么也不做,直到计算全部完成,然后一次性打印出中间步骤。
另一个问题:当我不使用 GUI 时,程序永远不会崩溃,现在如果输入足够大,程序就会崩溃:它会卡住并且永远不会恢复正常。
请问有什么帮助吗?
最佳答案
您必须在后台工作线程中完成这项工作。在主线程中执行此操作将阻止 Swing 处理事件 -> UI 将阻塞。
关于java - java 中打印中间步骤卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984321/