現在、以下のコードを使用して2つのキーを検出しています。 Ctrl + F(または)Shift + 1 ...など。SWT KeyListenerの3つのキー押下の検出方法
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つのキーの押下を検出したいことです。つまり、Ctrl + Shift + 2またはいくつかのキーの組み合わせ。
上記の方法でハードコードキーを押して「Ctrlキー」/「Altキー」/「Shiftキー」には/ etcたいですこれは、この論理は私を助けません。 一般的にすることはできますか?すなわち、ユーザによって入力された任意の3つのキーが解析されるか? –
すべての状態マスクフラグをテストし、設定されている数をカウントすることができます。 – BevynQ