我有一个JPanel类,它使用"implements runnable"启动另一个线程.然后,这个其他线程将在各个点调用JPanel类中的一个方法,然后这样做将需要等待用户输入.我试图像这样实现它:
JPanel类中的方法由需要等待的其他线程调用:
public void methodToWait()
{
while(conditionIsMet)
{
try
{
wait();
}
catch
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
JPanel类中的方法,用于通知用户输入的等待:
public void mouseClicked(MouseEvent event)
{
notifyAll();
}
Run Code Online (Sandbox Code Playgroud)
但是,在运行应用程序时,它会在调用wait时抛出"java.lang.IllegalMonitorStateException",为什么要执行此操作以及如何解决此问题?