java - Vaadin 14 单选按钮组显示自定义字符串作为选项

标签 java radio-button vaadin vaadin14

我正在使用 Vaadin 14.1.21 + Java JDK/JRE 1.8

我有一个单选单选按钮组,在 DataClass 中其后面有一个 boolean 字段。

我不想向用户显示“true”/“false”作为选项,而是显示自定义字符串,假设“红色选项”表示 true,“绿色选项”表示 false。

我在API中看到有一个名为setRenderer的函数,但我不知道如何使用它。我已经弄清楚如何在网格中执行此操作,但不是在选择框中执行此操作...

选择框(todo):

rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false); // how to display them in the frontend as "Green option" / "Red option"?

....

binder.forField(rbgroup).bind("mybooleanField");

网格:(完成)

addColumn((mn) -> { // custom display
            final String displayAS;
            if (mn.getBoolValue()) {
                displayAS = "Option Red";
            } else {
                displayAS = "Option Green";
            }
            return displayAS;
        })
.setHeader("Columntitle")
.setFlexGrow(1)
.setSortable(true)
.setKey("Color Option");

最佳答案

code examples of RadioButtonGroup所示,设置渲染器以显示文本可以这样完成(示例代码和您的代码之间的混合):

RadioButtonGroup<Boolean> rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false);
rbgroup.setRenderer(new TextRenderer<>((mn) -> {
    if (mn) {
        return "Option Red";
    } else {
        return "Option Green";
    }
}));

如果您想显示任何 Vaadin 组件而不仅仅是文本,您可以使用 ComponentRenderer 而不是 TextRenderer。我使用一个简单的 Span 作为示例,但您可以构建复杂的布局并返回它们。

RadioButtonGroup<Boolean> rbgroup = new RadioButtonGroup<>();
rbgroup.setRequired(true);
rbgroup.setLabel("Title of radiobuttongroup");
rbgroup.setItems(true, false);
rbgroup.setRenderer(new ComponentRenderer<>((mn) -> {
    if (mn) {
        return new Span("Option Green");
    } else {
        return new Span("Option Red");
    }
}));

关于java - Vaadin 14 单选按钮组显示自定义字符串作为选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61007933/

相关文章:

java - JSOUP 连接UTF-8 字符

java - 用于 Hibernate 注释的可视化设计工具

css - 如何减少垂直单选按钮列表之间的间距

javascript - 用图像代替 radio

vaadin - Cypress 和 Vaadin 应用程序将触发错误弹出窗口,阻止测试工作

multithreading - vaadin推送不适用于标签

java.lang.NullPointerException : null entities are not supported by org. hibernate.event.def.EventCache

java - 随时间改变文字颜色

angular - 如何从 Angular 垫单选按钮中删除悬停颜色?

java - 使用 vaadin-cdi 时以编程方式设置上下文参数