我确实有一个角色,让我们说' /'我希望它转换为keyCode和StateMask:
' /' - > StateMask = 131072,KeyCode = 55
是否有一个功能我不知道哪个可以做到这一点?
答案 0 :(得分:0)
我假设您尝试在Text
或类似的地方进行某种验证。
首先,关于KeyEvent
s:
stateMask
生成事件时键盘修饰键和鼠标掩码的状态。
keyCode
键入的键的键代码,由类SWT中的键代码常量定义。当事件的字符字段不明确时,该字段包含原始字符的unicode值。例如,键入Ctrl + M或Return两者都会导致字符' \ r'但keyCode字段也将包含' \ r'当输入Return时。
在您的情况下,您似乎想要将输入的字符与/
进行比较。在此方案中,stateMask
和keyCode
不是必需的。只需e.character == '/'
即可。这是一个例子:
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout(1, false));
Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.Verify, new Listener()
{
@Override
public void handleEvent(Event e)
{
if (!(e.character == '/'))
e.doit = false;
}
});
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
请注意:stateMask
和keyCode
的值分别在我的计算机上为0
和47
(Windows 7,英国键盘布局)。