Я реализовал, как показано ниже.
![enter image description here](https://i.stack.imgur.com/zK8lH.png)
Проблема, с которой я сталкиваюсь, заключается в очистке содержимого CheckboxTableViewer. Сейчас я отслеживаю элементы, присутствующие в CheckboxTableViiewer, а затем удаляю 0-й элемент, но это вызывает проблемы, когда пользователь очень сильно перемещается по списку. быстро.
list= new org.eclipse.swt.widgets.List(container, SWT.CHECK | SWT.FULL_SELECTION | SWT.VIRTUAL);
list.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
Код для флажка
table = new Table(container, SWT.CHECK | SWT.FULL_SELECTION | SWT.VIRTUAL);
table.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
table.setHeaderVisible(true);
checkboxTableViewer = new CheckboxTableViewer(table);
в слушателе я попытался достать стол и очистить стол, но это не помогло.
checkboxTableViewer .getTable().clearAll();
пожалуйста, дайте мне знать, как действовать.
Обновлено с кодом
package com.checkagain.importWizards;
public class PageTwo extends WizardPage {
private Text text1;
private Composite container;
org.eclipse.swt.widgets.List single;
Table table ;
CheckboxTableViewer checkboxTableViewer;
List elementList= new ArrayList();
public PageTwo() {
super("PageTwo");
setTitle("PageTwo");
setDescription("Fake Wizard: PageTwo");
elementList.add("1");
elementList.add("2");
elementList.add("3");
elementList.add("4");
elementList.add("5");
elementList.add("6");
}
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
container.setLayout(new FillLayout());
layout.numColumns = 2;
single= new org.eclipse.swt.widgets.List(container, SWT.CHECK | SWT.FULL_SELECTION | SWT.VIRTUAL);
single.add("one");
single.add("two");
single.add("three");
single.add("four");
single.add("five");
single.add("six");
//single.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
//////Code for Check Box
table = new Table(container, SWT.CHECK | SWT.FULL_SELECTION | SWT.VIRTUAL);
//table.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
table.setHeaderVisible(true);
checkboxTableViewer = new CheckboxTableViewer(table);
single.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub
//additional code added on suggestion
checkboxTableViewer.setInput(new String[0]);
checkboxTableViewer.refresh();
checkboxTableViewer.add(elementList.get(single.getSelectionIndex()));
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
// TODO Auto-generated method stub
}
});
setControl(container);
setPageComplete(true);
}
public String getText1() {
return text1.getText();
}
}