gpt4 book ai didi

java - 如何在 JFace Wizard 中动态创建控件

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

我有一个 jFace 向导,我正在使用它来创建一个新的项目类型的 eclipse 插件。如下图所示,我在左侧有一个树查看器,在右侧有一个 SWT 组。我想要的是,当用户从 treeviewer 选择其中一项时,我应该能够在右侧 SWT 组上创建动态控件。假设用户选择测试一,右侧我应该能够在右侧创建一些控件,如标签、文本和几个单选按钮,类似地,如果用户选择测试二,我应该能够在右侧创建动态控件。 enter image description here

目前我试过下面的代码:

tree.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
for (int i = 0; i < selection.length; i++) {

String tempStr = selection[i].toString();
tempStr = tempStr.replaceAll("TreeItem \\{", "");
String finalStr = tempStr.replaceAll("\\}", "");

if (finalStr.equals("Test One")) {
Button btn = new Button(g2, SWT.NONE); //g2 is right side group

btn.setText("Blaaaa");

btn.setVisible(true);
container.redraw();
}

}

但是当我运行时,我发现右侧组没有变化。谁能指导我做错了什么?任何指点将不胜感激,因为我是 Eclipse 开发和 SWT 的新手。

最佳答案

您可能没有在 g2 组上设置布局。这是控件未显示的常见原因。您还可以尝试使用 g2.layout() 来确保新控件在您创建后正确布局。

此外,您可以考虑使用 StackLayout因此,一旦您创建了一组控件,您就可以一次隐藏它们,而不是在选择更改时销毁它们。这通常很有用,因此如果用户返回到之前的选择,他们会发现他们输入的数据处于切换选择时的相同状态。 Here is an example .

关于java - 如何在 JFace Wizard 中动态创建控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15330509/

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