gpt4 book ai didi

java - 如何在 Vaadin 8 中渲染网格的 LocalDateRenderer

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:55 25 4
gpt4 key购买 nike

据我了解 Vaadin 8.1.0 will include a new LocalDateRenderer使用 Java 8 的新日期 LocalDate 但与此同时,我正在尝试设置我自己的自定义 LocalDateRenderer。我已经让它大部分工作了,因为它全部连接起来,但根据我需要设置一个 AbstractRendererConnector 的文档,但没有这样的类...

以下代码全部位于我的主 UI 类中(用于测试目的):

private void setupGrid(Grid<Dog> grid)
{
grid.addColumn(dog -> dog.getBirthday(), new LocalDateRenderer()).setCaption("Birthday");
}

class LocalDateRenderer extends AbstractRenderer<Object, LocalDate>
{
public LocalDateRenderer()
{
super(LocalDate.class, "");
}

@Override
public JsonValue encode(LocalDate localDate)
{
return encode(DateTimeFormatter.ofPattern("MMM dd, YYYY").format(localDate), String.class);
}
}

我已经确认通过添加日志语句来调用 LocalDateRenderer,但是在网格上没有显示任何值。如果我使用相同的代码,但不是 LocalDate,而是使用 Long,而是使用自己的代码扩展 NumberRenderer,而不是扩展 AbstractRenderer,那么它就可以工作。

这引导我到 documentation where I need to setup the Renderer with a AbstractRendererConnector但每当我尝试这样做时,我都会收到编译器错误,指出 AbstractRendererConnector 无法解析为类型。当然,我有许多编译器错误(在下面的代码中)。我的代码(仍在主 UI 类中)是:

@Connect(LocalDateRenderer.class)
class LocalDateRendererConnector extends AbstractRendererConnector<LocalDate>
{
@Override
public LocalDateRenderer getRenderer()
{
return (LocalDateRenderer) super.getRenderer();
}
}

任何关于如何将其链接起来以显示我的实际日期的帮助将不胜感激。谢谢。

此外,在文档中,当它们引用 TextRenderer 时,并不清楚哪个类是哪个类,因为它们使用相同的名称来表示不同的东西......

最佳答案

如果您的编译器无法解析AbstractRendererConnector<T>对于类型,您必须缺少依赖项。如果您使用 Maven,则可以添加以下依赖项,假设您有 vaadin-bom在你的<dependencyManagement>部分。

    <dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
</dependency>

默认情况下,大多数 Vaadin 原型(prototype)中不包含此工件。

还要小心:有两个 Renderer接口(interface),其中之一 com.vaadin.client.rendererscom.vaadin.ui.renderers 中的一个。您的协变返回为 LocalDateRendererConnector.getRenderer()不起作用,因为 AbstractRendererConnector<T>实现不同的Renderer界面。

关于java - 如何在 Vaadin 8 中渲染网格的 LocalDateRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43079174/

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