gpt4 book ai didi

java - 如何加载复合 Material 的一部分并保持其他部分静态?

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

我在 SWT 中有一个表单,其中基于一个父组合有五个不同的组合。每个组合都包含不同的小部件,例如单个文本框/组合框/文本和组合的组合等。

现在的问题是,当我单击按钮时,我想更改我的第三个组合件以携带不同的小部件,使其他小部件保持静态。现在我无法从头开始重新加载,因为我希望显示其他小部件的当前值.我怎样才能只获取该复合 Material ,处理它并创建一个新的小部件来代替它。

创建和隐藏小部件很难考虑,因为它是动态的,我们想要重绘的位置。

这是片段。

    formComposite=new Composite(parentComposite,SWT.BORDER_SOLID);
formLayout=new GridLayout(5,false);
fromComposite.setLayout(formLayout)
item.create(formComposite) //Here item is the widget (combo/textbox/combination text/combo)

formComposite1=new Composite(parentComposite,SWT.BORDER_SOLID);
formLayout1=new GridLayout(5,false);
fromComposite1.setLayout(formLayout)
item1.create(formComposite1))

formComposite2=new Composite(parentComposite,SWT.BORDER_SOLID);
formLayout2=new GridLayout(5,false);
fromComposite2.setLayout(formLayout)
item2.create(formComposite2))

formComposite3=new Composite(parentComposite,SWT.BORDER_SOLID);
formLayout3=new GridLayout(5,false);
fromComposite3.setLayout(formLayout)
item3.create(formComposite3))

formComposite4=new Composite(parentComposite,SWT.BORDER_SOLID);
formLayout4=new GridLayout(5,false);
fromComposite4.setLayout(formLayout)
item4.create(formComposite4))

现在如何用要创建的不同项目替换 item3 以使其他项目保持静态?

最佳答案

假设每个Composite只有一个子控件,您只需处理现有控件并添加新控件,然后重做布局即可。

item.dispose();

item = new Combo(fromComposite, ... style);

formComposite.layout(true);

您可能还需要在 parentComposite 上调用 layout

关于java - 如何加载复合 Material 的一部分并保持其他部分静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41953375/

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