В SWT клавиатурное событие представлено классом KeyEvent . Мы можем использовать KeyListener для получения и обработки KeyEvent .
Класс KeyEvent имеет три поля-члена для предоставления информации о ключе, сгенерированном событием.
1) символ — отображение значения символа нажатой клавиши.
2) stateMask — проверьте, нажаты ли какие-либо другие клавиши в данный момент. (общее использование для захвата клавиш CTRL, ALT и SHIFT).
3) keyCode — отображает цифровое значение нажатой клавиши.
Мы можем прикрепить KeyListener () или KeyAdapter () к элементу управления виджетом, чтобы отслеживать событие клавиатуры.
"widget control".addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
}
});
Проверьте, нажата ли клавиша ALT в данный момент
if ((e.stateMask & SWT.ALT) != 0)
Проверьте, нажата ли клавиша BACKSPACE
if(e.keyCode == SWT.BS)
PS Пожалуйста, проверьте класс SWT для других событий клавиатуры.
Проверьте, не нажат ли какой-либо символ
if(e.keyCode >=97 && e.keyCode <=122)
Проверьте, нажата ли какая-либо цифра
if(e.keyCode >=48 && e.keyCode <=57)
Вот полный источник того, как продемонстрировать, как захватить событие клавиатуры.
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
открытый класс SWTKeyEvent
{
public static void main (String [] args) {
Дисплей дисплей = новый дисплей ();
Shell shell = новая оболочка (дисплей);
shell.setText (Пример SWT KeyEvent);
shell.setLayout (new FillLayout ());
Кнопка кнопка = новая кнопка (оболочка, SWT.CENTER);
button.setText (Введите что-то);
button.addKeyListener (новый KeyAdapter ()
{
public void keyPressed (KeyEvent e)
{
String string = ;
// проверить щелчок вместе?
if ((e.stateMask & SWT.ALT)! = 0) string + = ALT - keyCode = + e.keyCode;
if ((e.stateMask & SWT.CTRL)! = 0) string + = CTRL - keyCode = + e.keyCode;
if ((e.stateMask & SWT.SHIFT)! = 0) string + = SHIFT - keyCode = + e.keyCode;
if (e.keyCode == SWT.BS)
{
string + = BACKSPACE - keyCode = + e.keyCode;
}
if (e.keyCode == SWT.ESC)
{
string + = ESCAPE - keyCode = + e.keyCode;
}
// проверяем символы
if (e.keyCode> = 97 && e.keyCode <{+ e.character + -> = 48 && e.keyCode <= 57)
{
string + = + e.character + - keyCode = + e.keyCode;
}
если (! String.equals ( ))
System.out.println (строка);
}
});
shell.open ();
while (! shell.isDisposed ()) {
if (! display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
0.00 (0%) 0 votes






