gpt4 book ai didi

java - CheckboxTableViewer 第一列全选

转载 作者:行者123 更新时间:2023-11-30 08:00:49 29 4
gpt4 key购买 nike

我目前正在开发一个向导,它将引导我完成几个步骤。在其中一个 WizardPages 上,我想要一个动态填充的表,用户可以在其中选择一些行。我为此使用了 CheckboxTableViewer。目前效果不错(包括动态列数等)结果如屏幕截图所示。 current behaviour

我的问题是第一列跨越了带有复选框的列。我希望有以下行为:

  • 第一个列标题(屏幕截图中的“nodeAlias”)应从列顶部开始,而不是在复选框上方(因此需要向右移动一点)
  • 我想在标题上方的复选框中添加一个复选框来执行“全选/取消全选”

我在向导页面中使用的代码(extends WizardPage)如下所示:

public class ShowResults extends WizardPage {
private Table table;

public ShowResults() {
super("wizardPage");
setTitle("Title");
setDescription("Description");
}

public void createControl(Composite parent) {
Composite container = new Composite(parent, SWT.NULL);

setControl(container);
container.setLayout(new GridLayout(1, false));

CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(container, SWT.BORDER | SWT.FULL_SELECTION);
createColumns(checkboxTableViewer);
table = checkboxTableViewer.getTable();
table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
table.setHeaderVisible(true);
table.setLinesVisible(true);

checkboxTableViewer.setContentProvider(ArrayContentProvider.getInstance());

checkboxTableViewer.setInput(getData()); // returns a list of Record-Objects
}


private void createColumns(CheckboxTableViewer checkboxTableViewer) {
// get the required columns as list and act for each
for(String columnName : getColumnNames()){
// create a column for the first name
TableViewerColumn colFirstName = new TableViewerColumn(checkboxTableViewer, SWT.NONE);
colFirstName.getColumn().setWidth(150);
colFirstName.getColumn().setText(columnName);
colFirstName.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
Record r = (Record) element;
return r.getValue(columnName);
}
});
}

}

我没有包含 Record 的类定义,因为无论如何信息的显示都是有效的。 (我想这对于这个问题来说并不重要)。

最佳答案

为什么不看看 Nebula 网格小部件呢?您可以为列标题编写自己的 CellRenderer。请参阅here

关于java - CheckboxTableViewer 第一列全选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944765/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com