Java 为什么瓦丁信号第一分量

Java 为什么瓦丁信号第一分量,java,vaadin7,Java,Vaadin7,我是瓦丁的新手。 我想创建一个页面,左侧有三个选项。根据选项选择,组合框将显示在右侧,这是左侧选项特有的。我想要带标签的组合框 名称:“组合框菜单” 到目前为止,我可以单击左侧的选项,在右侧显示组合框,但无法显示带有组合框的标签。标签是一个组件,组合框也是。当我将两者都添加到面板时。期望同时显示标签和组合框,但最后一个(组合框)忽略第一个(标签)。我不知道这是为什么。如果有人能帮我,我将不胜感激。 谢谢 这是我的密码: HorizontalLayout hLayout; Panel hpanel

我是瓦丁的新手。 我想创建一个页面,左侧有三个选项。根据选项选择,组合框将显示在右侧,这是左侧选项特有的。我想要带标签的组合框

名称:“组合框菜单”

到目前为止,我可以单击左侧的选项,在右侧显示组合框,但无法显示带有组合框的标签。标签是一个组件,组合框也是。当我将两者都添加到面板时。期望同时显示标签和组合框,但最后一个(组合框)忽略第一个(标签)。我不知道这是为什么。如果有人能帮我,我将不胜感激。 谢谢

这是我的密码:

HorizontalLayout hLayout;
Panel hpanel;
HorizontalSplitPanel hsplit;
VerticalSplitPanel vsplit;

tree.setImmediate(true);
tree.addItem("OP1");
tree.addItem("OP2");
tree.addItem("OP3");

hsplit.setFirstComponent(tree);

tree.addListener(new Component.Listener() {
        public void componentEvent(Component.Event event) {

            Object o = tree.getValue();
            System.out.println("selected = " + o);
            showWindowtab(o);
        }
    });

    hpanel.setContent(hsplit);
    hLayout.addComponent(hpanel);
    hLayout.setSpacing(true);

    final VerticalLayout main = new VerticalLayout();
    main.setMargin(true);
    setContent(main);

    main.addComponent(hLayout);

private void showWindowtab(Object itemClicked) {

    Label label = new Label("Here is example of Combo Box");

    hsplit.setSecondComponent(label);

    String document[] = { "X", "Y", "Z" };

    ComboBox cb = new ComboBox();
    cb.setInputPrompt("Select values");

    cb.setInvalidAllowed(false);
    cb.setNullSelectionAllowed(false);

    for (int i = 0; i < document.length; i++) {

        cb.addItem(document[i]);
    }

    cb.setImmediate(true);

    setFocusedComponent(cb);

    hsplit.setSecondComponent(cb);
}
水平布局hLayout;
面板hpanel;
水平分裂板;
垂直分裂板;
tree.setImmediate(true);
树。附加项(“OP1”);
树。附加项(“OP2”);
树。附加项(“OP3”);
hsplit.setFirstComponent(树);
tree.addListener(新组件.Listener(){
public void componentEvent(Component.Event事件){
对象o=tree.getValue();
System.out.println(“所选=”+o);
显示窗口选项卡(o);
}
});
hpanel.setContent(hsplit);
hLayout.addComponent(hpanel);
hLayout.setspace(真);
最终VerticalLayout main=新的VerticalLayout();
main.setMargin(真);
设置内容(主);
主添加组件(hLayout);
私有void showWindowtab(单击对象项){
标签标签=新标签(“这里是组合框的示例”);
hsplit.setSecondComponent(标签);
字符串文档[]={“X”、“Y”、“Z”};
ComboBox cb=新ComboBox();
cb.setInputPrompt(“选择值”);
cb.setInvalidAllowed(假);
cb.setNullSelectionAllowed(假);
for(int i=0;i
在label和cb上都调用setSecondComponent(),因此第二个可能会覆盖第一个

也许你想要的是setfirstComponent(标签)

另一个选项是在要查看标签的组件上调用addComponent(标签)