CheckboxTableViewer 不会显示复选框的标签
CheckboxTableViewer won't show the label of checkboxes
在 Java 中,我使用 CheckboxTableViewer
为用户显示清单。我正在使用 setInput 方法填充清单,如下所示。但是出于某种原因,当我 运行 我的代码驻留在向导页面中时,它显示复选框而不是框的标签(根本没有文本,就好像我传递的是空字符串一样)。我该如何解决这个问题?谢谢你。下面是我的代码
public void createControl(Composite arg0) {
Composite container = new Composite(arg0, SWT.NONE);
container.setLayout(new GridLayout());
GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
container.setLayoutData(layoutData);
checkboxTableViewer = CheckboxTableViewer.newCheckList(container,
SWT.FULL_SELECTION | SWT.BORDER);
checkboxTableViewer.getTable().setLinesVisible(true);
checkboxTableViewer.getTable().setSize(500, 500);
checkboxTableViewer.setContentProvider(new ArrayContentProvider());
checkboxTableViewer.setLabelProvider(new ITableLabelProvider() {
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
public Image getColumnImage(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
public String getColumnText(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
public void addListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
public void dispose() {
// TODO Auto-generated method stub
}
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
});
checkboxTableViewer.setInput(new String[]{"zaid","saad","ahmad"});
checkboxTableViewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
if (checkboxTableViewer.getCheckedElements().length > 0) {
enableNext = true;
} else {
enableNext = false;
}
checkStatus();
}
private void checkStatus() {
canFlipToNextPage();
// explicit call
getWizard().getContainer().updateButtons();
}
});
setControl(container);
}
由您在 table 上设置的标签提供者为 table 提供文本。您为文本(以及其他所有内容)设置的标签提供者只是 returns null
,所以您什么也得不到。
由于您只是在 table 中设置字符串,您可以只使用标准标签提供程序:
checkboxTableViewer.setLabelProvider(new LabelProvider());
在 Java 中,我使用 CheckboxTableViewer
为用户显示清单。我正在使用 setInput 方法填充清单,如下所示。但是出于某种原因,当我 运行 我的代码驻留在向导页面中时,它显示复选框而不是框的标签(根本没有文本,就好像我传递的是空字符串一样)。我该如何解决这个问题?谢谢你。下面是我的代码
public void createControl(Composite arg0) {
Composite container = new Composite(arg0, SWT.NONE);
container.setLayout(new GridLayout());
GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
container.setLayoutData(layoutData);
checkboxTableViewer = CheckboxTableViewer.newCheckList(container,
SWT.FULL_SELECTION | SWT.BORDER);
checkboxTableViewer.getTable().setLinesVisible(true);
checkboxTableViewer.getTable().setSize(500, 500);
checkboxTableViewer.setContentProvider(new ArrayContentProvider());
checkboxTableViewer.setLabelProvider(new ITableLabelProvider() {
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
public Image getColumnImage(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
public String getColumnText(Object element, int columnIndex) {
// TODO Auto-generated method stub
return null;
}
public void addListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
public void dispose() {
// TODO Auto-generated method stub
}
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
});
checkboxTableViewer.setInput(new String[]{"zaid","saad","ahmad"});
checkboxTableViewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
if (checkboxTableViewer.getCheckedElements().length > 0) {
enableNext = true;
} else {
enableNext = false;
}
checkStatus();
}
private void checkStatus() {
canFlipToNextPage();
// explicit call
getWizard().getContainer().updateButtons();
}
});
setControl(container);
}
由您在 table 上设置的标签提供者为 table 提供文本。您为文本(以及其他所有内容)设置的标签提供者只是 returns null
,所以您什么也得不到。
由于您只是在 table 中设置字符串,您可以只使用标准标签提供程序:
checkboxTableViewer.setLabelProvider(new LabelProvider());