在win7上的CheckboxTableViewer中选择不起作用

时间:2011-10-20 13:54:44

标签: java eclipse windows-7 rcp jface

我尝试使用org.eclipse.jface.viewers.CheckboxTableViewer作为org.eclipse.jface.wizard.WizardPage的一个组件。我这样创造了它:

public void createControl(Composite parent) {
    composite = new Composite(parent, SWT.NULL);
    final GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    composite.setLayout(gridLayout);
    setControl(composite);

    /* CheckboxTableViewer */
    viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER);
    final Table table = viewer.getTable();
    GridData data1 = new GridData();
    data1.grabExcessHorizontalSpace = true;
    data1.grabExcessVerticalSpace = true;
    data1.horizontalSpan = 2;
    data1.horizontalAlignment = SWT.FILL;
    data1.verticalAlignment = SWT.FILL;
    table.setLayoutData(data1);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    checkboxColumn = new TableColumn(table, SWT.LEFT);
    ...

内容提供者动态插入查看器的内容。在gnome上一切正常。在Windows 7(64位和32位)上测试时,我无法选择该视图的任何条目。 Mouseclicks似乎对视图没有影响。 我在表中添加了一个mouselistener,并且触发了mouseUp- / Down事件,并且没有触发查看器上的selectionChanged和doubleClick。谁可以向我解释这种行为?

提前,

hage

(我已经在eclipse论坛上发布了这个问题而没有任何回复:http://www.eclipse.org/forums/index.php/t/250953/

1 个答案:

答案 0 :(得分:1)

创建 CheckboxTableViewer 时,您必须添加另一个样式标记: SWT.FULL_SELECTION

viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);

现在,您只需单击一下即可在表格中选择行。