我一直在阅读关于Swing中的Java Concurrency,并且无法找到适合我情况的答案.
目标:让我的swing应用程序同时运行while循环,直到程序/应用程序退出.
问题:程序冻结(正如我之前预期的那样)并且无法使用.
尝试 - 解决方案:我试图在另一个线程上启动while循环,启动它,仍然没有.
码:
package stakeme;
import java.io.IOException;
import javax.swing.SwingUtilities;
public class StakeMeServer {
private static ServerSocket socket;
public static Thread t;
public static void main(String[] args) throws IOException {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ConsoleGUI("Server", 800, 400, false);
}
});
Thread t = new Thread(() -> {
System.out.println("1");
while (online) {
System.out.println("2");
}
});
t.setName("GameServer");
t.start();
}
}
Run Code Online (Sandbox Code Playgroud)
更新:通过使用SwingWorker类在后台执行我的while循环,我几乎可以做我需要做的事情.
码:
package stakeme;
import java.io.IOException;
import …Run Code Online (Sandbox Code Playgroud)