我尝试使用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/)
答案 0 :(得分:1)
创建 CheckboxTableViewer 时,您必须添加另一个样式标记: SWT.FULL_SELECTION
viewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.FULL_SELECTION);
现在,您只需单击一下即可在表格中选择行。