Java 如何在SWT(Shift+;左鼠标)中一次侦听按键和鼠标事件?
我想在SWT中捕获Shift+鼠标左键向上的事件。我只想在按住shift键并释放鼠标左键的同时打印一些示例消息监听Java 如何在SWT(Shift+;左鼠标)中一次侦听按键和鼠标事件?,java,swt,Java,Swt,我想在SWT中捕获Shift+鼠标左键向上的事件。我只想在按住shift键并释放鼠标左键的同时打印一些示例消息监听SWT.MouseUp,将事件.statemack与SWT.shift进行比较,然后将事件.button与1进行比较 public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); sh
SWT.MouseUp
,将事件.statemack
与SWT.shift
进行比较,然后将事件.button
与1
进行比较
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout());
Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.MouseUp, new Listener()
{
@Override
public void handleEvent(Event e)
{
if ((e.stateMask & SWT.SHIFT) != 0 && e.button == 1)
{
System.out.println("shift pressed and left mouse clicked");
}
}
});
shell.pack();
shell.open();
shell.layout(true, true);
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
聆听
SWT.MouseUp
并将事件.statemack
与SWT.SHIFT
进行比较,然后将事件.button
与1
进行比较
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new GridLayout());
Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.MouseUp, new Listener()
{
@Override
public void handleEvent(Event e)
{
if ((e.stateMask & SWT.SHIFT) != 0 && e.button == 1)
{
System.out.println("shift pressed and left mouse clicked");
}
}
});
shell.pack();
shell.open();
shell.layout(true, true);
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
感谢@Baz提供您的建议和答案。但是,你误解了我的问题。我要求的是鼠标左键向上,而不是左箭头键向上。你的回答对左箭头键很有效。请仅帮助检测Shift+鼠标左键向上事件。它应该区分鼠标左键和右键。@varma Ok,更新了答案。现在将检查shift和鼠标左键。感谢@Baz提供您的建议和答案。但是,你误解了我的问题。我要求的是鼠标左键向上,而不是左箭头键向上。你的回答对左箭头键很有效。请仅帮助检测Shift+鼠标左键向上事件。它应该区分鼠标左键和右键。@varma Ok,更新了答案。它现在将检查shift和鼠标左键。