gpt4 book ai didi

java - 循环时不接受我输入的 key - Java AWT

转载 作者:行者123 更新时间:2023-12-01 12:02:09 25 4
gpt4 key购买 nike

我在我的方法中使用 while 循环

public void keyTyped (KeyEvent e)

这里的问题是,程序进入循环,它要求用户输入。如果输入在“while”设置的参数范围内,它就会继续无限重复该输入。尽管我确实输入了代码,但它不会再次要求输入。

我需要的是它在每次循环时询问用户输入。有什么帮助吗?

//cardChosen1 is "null" at this point`
while (cardChosen1 < 97 || cardChosen1 > 108)
{

Thread.currentThread ().setPriority (Thread.MIN_PRIORITY);
cardChosen1 = e.getKeyChar ();
System.out.println ("Inside Loop" + cardChosen1);

repaint ();
try
{
// Stop thread for 20 milliseconds
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}
Thread.currentThread ().setPriority (Thread.MAX_PRIORITY);
}

最佳答案

AWT 与大多数 GUI 框架一样,是事件驱动的。也就是说,您使用 API 注册某种回调/观察者/监听器,并等待该回调/观察者/监听器收到发生了某些事情的通知。

您必须记住,GUI 不是代码的线性进展,相反,事件可以在任何时间以任何顺序发生,您需要针对这些事件进行编码。

首先查看 Event Dispatching Thread了解在基于 AWT 的框架内生成事件和发出通知的核心机制。

然后看看How to write KeyListeners了解如何获得有关程序中关键事件的通知。

如果没有更多关于您想要实现的目标的详细信息,很难提供更多信息,但本质上,永远不要阻止 EDT,这将阻止它处理事件队列中的新事件,并使您的程序看起来像是挂起的(因为它本质上有)

关于java - 循环时不接受我输入的 key - Java AWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com