gpt4 book ai didi

java - swt - 重新创建复合 Material

转载 作者:行者123 更新时间:2023-12-02 03:26:49 26 4
gpt4 key购买 nike

我有一个 Composite 的子类,它创建 N 个组合框,其中 N 由输入定义。因此,当用户进行更改时,组合框的数量可能会发生变化。目前,这种情况还没有发生。我尝试了两种方法:

// On event, straight reconstruct, no change to number of dropdowns
myComp = new MyComposite(parent, SWT.NONE, newNum);

// On event, dispose and reconstruct, this completely removes my composite from the gui
myComp.dispose();
myComp = new MyComposite(parent, SWT.NONE, newNum);

这是我的复合类:

public MyComposite(Composite parent, int num) {
super(parent, SWT.BORDER);
this.setText("MY Composite");
this.setLayout(new GridLayout(1, true));
this.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

combos = new HashMap<>();
for(int i = 0; i < num; i++) {
combos.put(i, new Combo(this, SWT.NONE));
}
}

还有其他/更好的方法吗?

最佳答案

如果您更改Composite 的内容,您需要告诉它您重新布局其内容。

所以之后

myComp.dispose();
myComp = new MyComposite(parent, SWT.NONE, newNum);

你需要做

parent.layout(true, true);

关于java - swt - 重新创建复合 Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38736553/

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