Java 瓦丁:我如何用单选按钮选择一个组件?

Java 瓦丁:我如何用单选按钮选择一个组件?,java,web,vaadin,Java,Web,Vaadin,我有一个用例,用户需要使用复选框选择项目,然后可以选择两个单选按钮。现在的计划是使用单选按钮选择一个组件。一个单选按钮将选择一个组合框,另一个单选按钮将选择一个文本字段。然而,我无法做到这一点,在谷歌搜索时也没有找到任何信息 我错过什么了吗?如果使用setItems(),则获取对象引用,而不是对象本身 谢谢大家! 编辑-我尝试的代码: RadioButtonGroup<Component> rbg = new RadioButtonGroup(); TextField tf = ne

我有一个用例,用户需要使用复选框选择项目,然后可以选择两个单选按钮。现在的计划是使用单选按钮选择一个组件。一个单选按钮将选择一个组合框,另一个单选按钮将选择一个文本字段。然而,我无法做到这一点,在谷歌搜索时也没有找到任何信息

我错过什么了吗?如果使用setItems(),则获取对象引用,而不是对象本身

谢谢大家!

编辑-我尝试的代码:

RadioButtonGroup<Component> rbg = new RadioButtonGroup();
TextField tf = new TextField("foo");
ComboBox<String> cb = new ComboBox();
rbg.setItems(tf, cb);
RadioButtonGroup rbg=新的RadioButtonGroup();
TextField tf=新的TextField(“foo”);
ComboBox cb=新ComboBox();
rbg.设定项目(tf、cb);

RadioButtonGroup rbg=新的RadioButtonGroup();
TextField tf=新的TextField(“foo”);
ComboBox cb=新ComboBox();
rbg.add(tf,cb);
我尝试使用不同的类型和方法,但没有成功。

不能将
用作字段的泛型类型参数。您将需要以下内容:

RadioButtonGroup RadioButtonGroup=新建RadioButtonGroup();
radioButtonGroup.setItems(“foo”、“bar”);
radioButtonGroup.setRenderer(新组件渲染器(项->{
如果(“foo”。等于(项目)){
TextField TextField=新的TextField();
返回文本字段;
}否则{
ComboBox ComboBox=新建ComboBox();
comboBox.setItems(“baz”、“qux”);
返回组合框;
}
}));
radioButtonGroup.setValue(“foo”);
添加(radioButtonGroup);
不能将
用作字段的泛型类型参数。您将需要以下内容:

RadioButtonGroup RadioButtonGroup=新建RadioButtonGroup();
radioButtonGroup.setItems(“foo”、“bar”);
radioButtonGroup.setRenderer(新组件渲染器(项->{
如果(“foo”。等于(项目)){
TextField TextField=新的TextField();
返回文本字段;
}否则{
ComboBox ComboBox=新建ComboBox();
comboBox.setItems(“baz”、“qux”);
返回组合框;
}
}));
radioButtonGroup.setValue(“foo”);
添加(radioButtonGroup);

请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们改进。我理解这一点。但实际上没有任何代码可以发布,可能与此相关。我唯一尝试的是使用radioButtonGroup.setItems(),传递textField和ComboBox,但这导致显示的是对象引用,而不是实际的UI组件。在调用setItems的地方张贴代码,至少听起来您使用的是错误的。代码越多越好。根据您的描述,我不完全确定,但听起来您是在尝试为单选按钮组中的项目使用组件而不是文本标签?如果确实如此,那么您需要使用
组件渲染器
。请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。我理解这一点。但实际上没有任何代码可以发布,可能与此相关。我唯一尝试的是使用radioButtonGroup.setItems(),传递textField和ComboBox,但这导致显示的是对象引用,而不是实际的UI组件。在调用setItems的地方张贴代码,至少听起来您使用的是错误的。代码越多越好。根据您的描述,我不完全确定,但听起来您是在尝试为单选按钮组中的项目使用组件而不是文本标签?如果确实如此,那么您需要使用
组件渲染器
RadioButtonGroup<Component> rbg = new RadioButtonGroup();
TextField tf = new TextField("foo");
ComboBox<String> cb = new ComboBox();
rbg.add(tf, cb);