gpt4 book ai didi

java - JFace、SWT 在输入更改时更改组合查看器宽度

转载 作者:行者123 更新时间:2023-11-30 07:41:49 26 4
gpt4 key购买 nike

我有两个组合查看器,其想法是第二个组合将根据所选的第一个组合值显示选项子集。但是在第二个组合中设置新输入并刷新后,组合宽度太小。如何将其设置为自动调整选项宽度?

public class ExpresionDialog extends Dialog {
private ComboViewer combo1;
private ComboViewer combo2;

@Override
protected Control createDialogArea(Composite composite) {
Composite parent = (Composite) super.createDialogArea(composite);
GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);

combo1 = new ComboViewer(parent);
combo1.setLabelProvider(new LabelProvider());
combo1.setContentProvider(ArrayContentProvider.getInstance());
combo1.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
IStructuredSelection sel = (IStructuredSelection) e.getSelection();
AttributeOption option = (AttributeOption) sel.getFirstElement();
combo2.setInput(getValuesCombo2(option));
combo2.refresh(true);
}
});
combo1.setInput(getValuesCombo1());

combo2 = new ComboViewer(parent);
combo2.setLabelProvider(new LabelProvider());
combo2.setContentProvider(ArrayContentProvider.getInstance());

return parent;
}

// Omitted getValuesCombo1 and getValuesCombo2 methods ...
}

最佳答案

您需要调用父 Compositelayout 方法,让它在每次更改内容时重做子布局。

关于java - JFace、SWT 在输入更改时更改组合查看器宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34565284/

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