[英]How to get keyevent in java without textfield or textarea?
我正在研究Java中的GUI。 現在,我正在編寫一個有關按鈕的小程序,我有一個問題。 通常,我使用鼠標單擊一個按鈕,然后設置一個“消息對話框”,但是現在,我想設置一個方法。 在這種方法中,我使用KeyEvent
,我想按一個鍵,程序將自動選擇按鈕而無需鼠標。 我已經使用了TextArea和TextField
,現在我想在沒有TextArea
和TextField
情況下使用此方法。 示例:當我單擊按鈕時,將顯示消息對話框,現在當我按A時將顯示消息對話框,而不是單擊按鈕。 請幫我 !
您可以將KeyListener
添加到JFrame
。 這是一個很棒的教程。
例
讓我們創建一個實現KeyListener
的類,並假設您有一個擴展JFrame
的類,稱為Program
。
public class KeyMapper implements KeyListener
{
// Lots of methods will need to be written. I won't do them all.
private Program world;
public KeyMapper(Program world)
{
this.world = world;
}
/**
* This is the event that fires when a key is hit.
* @param e the event object passed when a key is hit.
* @Override
*/
public void keyTyped(KeyEvent e) {
if(e.getKeyChar() == 't') {
world.callMethod();
}
}
}
每當點擊t
, KeyMapper
就會在您的程序中調用一個方法。 要將其添加到您的Program
,可以使用以下行:
this.addKeyListener(new KeyMapper(this));
對於較大的事件處理,我建議使用@Chris的建議,但對於與您一樣小的建議-即,在keyPress上調用一個簡單的方法,我個人將使用匿名偵聽器
.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
//method call goes here
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.