gpt4 book ai didi

java - 混搭键导致无效输入

转载 作者:行者123 更新时间:2023-11-29 07:59:52 25 4
gpt4 key购买 nike

我在演示我的程序时,基本上是通过在数字键盘上敲击按键来快速获取一些虚拟数据,我发现这偶尔会导致输入无效输入。这似乎是某种线程问题,但我对 Swing 事件的理解是它们基本上是从同一线程按顺序触发的。我没有明确地创建我自己的任何线程,但我正在使用 paintComponent(Graphics g) 进行大量自定义绘画。大多数按键最终会触发堆栈深处的 repaint()。这会导致我的问题吗?为什么?如果是这样,知道如何解决吗?如果不是,知道它可能是什么吗?

另外,有谁知道如何对此进行自动化测试吗?相关的事件处理程序如下所示。

public void keyTyped(KeyEvent e)
{
if (e.getKeyChar() == myKeyChar)
runPrimaryFunction(); // Does some calculations and triggers a repaint
}

public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == myKeyCode)
runPrimaryFunction();
}

/********* Another class listening to the same JFrame ********/

public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_UP)
{
scrollUp();
repaint();
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN)
{
scrollDown();
repaint();
}
}

最佳答案

你几乎肯定会使用 Key Bindings .默认情况下,箭头键通常绑定(bind)到滚动 Pane 操作,您可以自己调用这些操作,如图所示 here .还可以考虑实现 Scrollable界面。

如果您使用 Key Listener ,请注意这个本质区别:keyTyped() “事件发生在按下键后紧接着释放键时。” KeyEventDemo说明了事件是如何交错的。

关于java - 混搭键导致无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15028086/

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