Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么滑块的SWT选择事件没有详细信息?_Java_Swt_Cross Platform - Fatal编程技术网

Java 为什么滑块的SWT选择事件没有详细信息?

Java 为什么滑块的SWT选择事件没有详细信息?,java,swt,cross-platform,Java,Swt,Cross Platform,我遵循的是SWT滑块代码片段示例,事件详细信息始终为0,即在fedora上为SWT.NONE,但在windows 7上设置了详细信息。这个例子可以在这里找到,这是我正在运行的代码 public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); final Slider slider = new Slider(shell,

我遵循的是SWT滑块代码片段示例,事件详细信息始终为0,即在fedora上为SWT.NONE,但在windows 7上设置了详细信息。这个例子可以在这里找到,这是我正在运行的代码

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();
}
据说和已解决,但不能在我的机器上工作(Ubuntu 12.04 eclipse版本是开普勒)

从而提出了一个新的解决方案

请参考我的帖子,我说还有其他方法可以检测这些事件


另外,请等待Eclipse Luna(将于6月25日发布)中的检查。

Slider的Linux/GTK版本的源代码将显示为设置详细信息字段。在Slider类中更新详细信息的所有位置抛出断点后,GTK_button_press_事件似乎始终返回0或NONE。这会导致gtk_change_值始终将事件详细信息设置为“无”。