截至目前,我正在使用下面的代碼來檢測兩個按鍵。 I.e,Ctrl + F(或)Shift + 1 ...等等,如何檢測SWT中的3個按鍵KeyListener
CCombo comboBox = this.cellEditor.getViewer().getCCombo();
KeyAdapter keyAdapter = new KeyAdapter()
{
@Override
public void keyPressed(final KeyEvent evt)
{
// KeyPreferenceUtils is used to get the eclipse workbench key preference values.
int keyCode = KeyPreferenceUtils.getKeyValue();
if ((evt.stateMask == SWT.CTRL) || (evt.stateMask == SWT.ALT) || (evt.stateMask == SWT.SHIFT) || (evt.stateMask == SWT.COMMAND))
{
String pressedKey = Action.convertAccelerator(evt.stateMask + evt.keyCode);
int pressedKeyValue = Action.convertAccelerator(pressedKey);
if (pressedKeyValue == keyCode)
{
comboBox.setListVisible(true);
}
}
else if (evt.keyCode == keyCode)
{
comboBox.setListVisible(true);
}
}
};
comboBox.addKeyListener(keyAdapter);
現在我的問題是我想檢測3鍵按下。 I.e,Ctrl + Shift + 2或某些組合鍵。
上述方法硬編碼鍵按壓到按「Ctrl」 /「Alt鍵」 /「換檔」 /等。 如果用戶輸入比任何其他鍵這個,這個邏輯不會幫助我。 是否有可能使其具有通用性?即用戶輸入的任何3個鍵被解析? –
您可以始終測試所有狀態掩碼標誌並計算設置的數量。 – BevynQ