【发布时间】:2014-03-17 05:43:37
【问题描述】:
我有一个包含 3 个不同部分的 GUI。在其中一个部分中,我有 2 个复选框。 选择一个复选框时,我想添加另一个小部件多重选择列表。
我在复选框中添加了一个 selectionListener,当它被选中时,我正在调用创建多选列表的方法。
问题是当复选框被选中时这个列表没有被添加到 GUI 中,当复选框被取消选中时它没有被删除。
我无法找到原因。有人可以帮帮我吗?
下面是添加多选列表的代码
private void createFirstLevelSubFolderGroup() {
GridData gridData = new GridData();
gridData.grabExcessVerticalSpace = true;
gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL;
gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL;
gridData.grabExcessHorizontalSpace = true;
subFolderGroup = new Group(this, SWT.NONE);
subFolderGroup.setLayout(new FillLayout());
subFolderGroup.setLayoutData(gridData);
subFolderGroup.setText("First Level SubFolder");
firstLevelFolderList = new List(subFolderGroup, SWT.V_SCROLL | SWT.MULTI);
subFolderGroup.setVisible(true);
//firstLevelFolderList.setVisible(false);
}
//code where the call to add this list is there
//code adding a checkbox is here and below am adding a listener to that checkbox
ArchiveCheckbox.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(SelectionEvent e)
{
if (ArchiveCheckbox.getSelection()) {
// here am trying to call the method which adds multiple selection list
createFirstLevelSubFolderGroup();
}
else {
// I want to remove that widget
subFolderGroup.setVisible(false);
firstLevelFolderList.removeAll();
}
}
}
基本上我无法动态添加它。
如果我提供的代码没有 req 信息,则演示我的场景的小代码 sn-p 很好。
![下面是我正在创建的 gui。当复选框为捕获准备存档被选中时,我希望多选列表应该出现在复选框的正下方,并且在取消选中时它应该消失。目前,当它被选中时出现多选列表,但它隐藏了包含源的其他组模型][1]
[2]: http://i.stack.imgur.com/Xl2ml.png
【问题讨论】: