Java 停止JDialog阻塞而不关闭

Java 停止JDialog阻塞而不关闭,java,swing,jdialog,Java,Swing,Jdialog,我目前正在做一项作业,涉及用Java实现一些棋盘游戏。我们必须围绕讲师给我们的接口工作。实际的“UI”类独立于游戏逻辑,并在主线程中启动。最初,这个类扩展了JFrame。当用户按下enter键时,一个布尔值被设置为显示他/她已经移动,主线程在while循环中等待,反复轮询JFrame以查看用户是否移动: while (!input.moveEntered()) { //sleep for 100ms } move.setPosition(input.getX(), input.getY(

我目前正在做一项作业,涉及用Java实现一些棋盘游戏。我们必须围绕讲师给我们的接口工作。实际的“UI”类独立于游戏逻辑,并在主线程中启动。最初,这个类扩展了JFrame。当用户按下enter键时,一个布尔值被设置为显示他/她已经移动,主线程在while循环中等待,反复轮询JFrame以查看用户是否移动:

while (!input.moveEntered())
{
    //sleep for 100ms
}
move.setPosition(input.getX(), input.getY());
return move;
这显然不是解决问题的方法,多亏了前面一个问题()的帮助,我开始使用模态JDialog。setVisible()块的事实是好的,但是JDialogs似乎是用于单输入的。有没有办法在不结束setVisible方法和关闭窗口的情况下停止阻塞主线程?我需要窗口在移动之间保持打开状态:


提前谢谢。

这很难说,但听起来好像你整个思维过程都错了。每次用户移动时,您都应该检查是否存在赢家条件,当出现赢家条件时,您可以触发一个新事件供其他观察者/控制器处理,无需模式对话框。是的,你
while loop
完全把我吓坏了我会怎么做,但我们必须实现给定的接口。我们有一个游戏管理器,它有两个玩家实例(可以是计算机/人),它要求他们返回一个移动。人类玩家启动一个UI来获取移动并返回,然后在移动完成后,检查获胜条件