我在Vaadin中添加了几个布局组件,作为标签添加,执行耗时的操作以显示一些值。为了最小化计算时间,我希望仅在相关的面板/布局变得可见时才执行耗时的操作。我曾尝试过常见的事件听众,但他们并没有被解雇。在Swing中,我常常对此类事件做出反应。但是你怎么在Vaadin做到这一点?
gridLayout.addComponentAttachListener(new ComponentAttachListener()
{
@Override
public void componentAttachedToContainer(
final ComponentAttachEvent event)
{
System.err.println("attach-listener-" + event);
}
});
gridLayout.addLayoutClickListener(new LayoutClickListener()
{
@Override
public void layoutClick(final LayoutClickEvent event)
{
System.err.println("layoutclick" + event);
}
});
实现延迟加载"非常重要。这些UI容器的内容。我确信我并不是唯一一个试图意识到这一点的人。你的方法是什么?
答案 0 :(得分:1)
如果您实际使用TabSheet
,可以先在标签上添加空布局,然后收听tab selection change events。在那里,您可以通过昂贵的操作填充空白布局。