Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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 - Fatal编程技术网

Java SWT表格不使用鼠标滚轮滚动

Java SWT表格不使用鼠标滚轮滚动,java,swt,Java,Swt,我正在创建一个JFace表,如下所示: final Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION); 并期待着滚动与标题固定在顶部,但我没有得到我所期望的。我可以使用垂直和水平滚动条滚动表格,但是 列标题将从视图中滚出 即使鼠标滚轮处于焦点位置,我也无法滚动。 我真的需要自己补充吗 更多详情: 我使用我的表作为MasterDetails块的详细信息部分 My DetailsPage类扩展了AbstractForm

我正在创建一个JFace表,如下所示:

final Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION);
并期待着滚动与标题固定在顶部,但我没有得到我所期望的。我可以使用垂直和水平滚动条滚动表格,但是

列标题将从视图中滚出 即使鼠标滚轮处于焦点位置,我也无法滚动。 我真的需要自己补充吗

更多详情:

我使用我的表作为MasterDetails块的详细信息部分

My DetailsPage类扩展了AbstractFormPart并实现了IDetailsPage

@Override
public void createContents(final Composite parent) {
    final Layout layout = new FillLayout();
    parent.setLayout(layout);
    createViewer(parent);

}
    private void createViewer(final Composite parent) {
        final Table table = new Table(parent, SWT.BORDER | SWT.FULL_SELECTION);

//      this.viewer = new TableViewer(parent, SWT.MULTI | /*SWT.H_SCROLL | SWT.V_SCROLL |*/ SWT.FULL_SELECTION | SWT.BORDER);
        this.viewer = new TableViewer(table);
        createColumns(parent, this.viewer);
        table.setHeaderVisible(true);
        table.setLinesVisible(true);

        this.viewer.setContentProvider(new ArrayContentProvider());
        // get the content for the viewer, setInput will call getElements in the
        // contentProvider
        this.viewer.setInput( /createInput() );
        // make the selection available to other views
        this.editor.getSite().setSelectionProvider(this.viewer);
        ...
    }

createInput返回我的元素数组。注释掉的部分是我最初的尝试,但也不起作用。

我不确定为什么会起作用,但当我将详细信息页面的布局更改为GridLayout并为表提供以下GridData时,它按预期工作

    final GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd.widthHint = 500;
    gd.heightHint = 120;
    table.setLayoutData(gd);

我从

那里得到提示,我无法复制您的问题。我有固定的标题,我可以用鼠标滚轮滚动。你正在使用哪个操作系统?你能在创建表格的地方发布完整的代码片段吗?@Baz我添加了代码。你现在能复制它吗?@Baz我在Windows7上,EclipseJunonope,不能复制它。这是我通常做的事。很好用。但我没有使用RCP。这可能与我的主/详细信息块的设置方式有关吗?当焦点放在树视图的主部分上时,它会很好地滚动。另外,我注意到,当列表很长时,如果有一个,则水平滚动条一直位于底部,我必须向下滚动才能看到它。