我通過基本上在數字鍵盤上混合鍵來顯示我的程序,以真正快速地獲得一些虛擬數據,並發現偶爾會導致輸入無效輸入。這似乎是某種線程問題,但我對Swing事件的理解是,它們基本上是從同一個線程中按順序觸發的。我沒有明確地創建自己的任何線程,但我正在使用paintComponent(Graphics g)
進行大量自定義繪製。大多數按鍵最終會在堆棧中觸發深度爲repaint()
。這可能會導致我的問題?爲什麼?如果是這樣,任何想法如何解決它?如果沒有,還有什麼想法呢?Mashing鍵導致無效輸入
此外,有沒有人知道如何爲此做一個自動化測試?下面顯示了相關的事件處理程序。
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();
}
}
你沒有給我足夠的信息。我不知道錯誤是什麼,並且我沒有完整的源代碼(即使我傾向於閱讀它)。我不知道「無效輸入」是什麼意思。你顯然已經決定這些幾十行的「相關」代碼包含一些我可以指向的內容,並說「有你的問題!」。如果你真的需要幫助,你應該更加努力地給潛在的幫助者他們需要什麼。您也可以在標題中提及整體技術(Swing)。 – arcy 2013-02-22 16:10:22