目前我正在嘗試將MKYong的KeyListener example整合到Eclipse RCP應用程序中。KeyListener只在點擊按鈕後纔開始收聽
我從Button
得到一些奇怪的行爲我正在註冊KeyListener
,它只在第一次點擊按鈕後纔開始收聽鍵盤輸入。
我想它來聽所有的鍵盤事件被創建後發生。對我來說,我不得不使用什麼樣的SWT Control
。
任何想法表示讚賞。
目前我正在嘗試將MKYong的KeyListener example整合到Eclipse RCP應用程序中。KeyListener只在點擊按鈕後纔開始收聽
我從Button
得到一些奇怪的行爲我正在註冊KeyListener
,它只在第一次點擊按鈕後纔開始收聽鍵盤輸入。
我想它來聽所有的鍵盤事件被創建後發生。對我來說,我不得不使用什麼樣的SWT Control
。
任何想法表示讚賞。
控件只有獲得鍵盤焦點時的按鍵事件。
如果你想獲得你可以使用的Display
Display.getDefault().addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(Event event)
{
// Handle key down event
}
});
您已經添加的KeyListener到按鈕的addFilter
方法的所有重要事件。當keyEvent獲得焦點時,會通知Button。如果你想在你的整個窗口監聽鍵盤事件,然後添加的KeyListener到shell:
shell.addKeyListener(new KeyAdapter()...
如果你想全球的KeyListener添加顯示過濾器:
Listener listener = new Listener() {
@Override
public void handleEvent(Event e) {
if(e.type == SWT.KeyDown||e.type == SWT.KeyUp) {
System.out.println("" + e.keyCode);
}
}
};
display.addFilter(SWT.KeyDown, listener);
display.addFilter(SWT.KeyUp, listener);
請記住,當你」來刪除該過濾器重新聽完,否則你的整個應用程序將是越野車。 – GGrec