Java 如何在SWT(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中捕获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);
    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和鼠标左键。