为什么滑块的SWT Selection事件永远不会有详细信息?

时间:2014-06-18 16:34:42

标签: java swt cross-platform

我正在关注SWT Slider Snippet示例,事件详细信息在Fedora上始终为0,也就是SWT.NONE,但是在Windows 7上设置了详细信息。示例可以在http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/SWTSliderprintscrolleventdetails.htm找到,这里是代码I跑了。

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    final Slider slider = new Slider(shell, SWT.HORIZONTAL);
    slider.setBounds(10, 10, 200, 32);
    slider.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            String string = "SWT.NONE";
            switch (event.detail) {
                case SWT.DRAG:
                    string = "SWT.DRAG";
                    break;
                case SWT.HOME:
                    string = "SWT.HOME";
                    break;
                case SWT.END:
                    string = "SWT.END";
                    break;
                case SWT.ARROW_DOWN:
                    string = "SWT.ARROW_DOWN";
                    break;
                case SWT.ARROW_UP:
                    string = "SWT.ARROW_UP";
                    break;
                case SWT.PAGE_DOWN:
                    string = "SWT.PAGE_DOWN";
                    break;
                case SWT.PAGE_UP:
                    string = "SWT.PAGE_UP";
                    break;
            }
            System.out.println(slider.getSelection());
            System.out.println("Scroll detail -> " + string);
        }
    });
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
}

1 个答案:

答案 0 :(得分:1)

this bugthis bug已解决,但我的机器上没有工作(Ubuntu 12.04 eclipse版本是Kepler)。

因此提出了一个新的bug here

请参阅我的帖子SWT Scrollbar events on Linux此处我说其他工作来检测这些事件。

请等待Eclipse Luna检查(将于6月25日发布)。