【问题标题】:Vaadin panel shared between pages页面之间共享的 Vaadin 面板
【发布时间】:2012-01-22 23:50:01
【问题描述】:

我想创建在页面之间共享的面板对象(用作一种导航栏)。我想动态添加按钮,所以所有页面共享同一个对象对我来说很重要。

但是,当我将面板添加到第二页时,它会从第一页消失!为什么会这样?

也许有任何提示如何处理它? :)

【问题讨论】:

    标签: java panel vaadin


    【解决方案1】:

    我建议您查看FlexTabSheetNavigationFeeder 一个组件,据我了解,该组件用于创建通用导航菜单,将视图/内容连接到组件的每个按钮/选项卡。

    我使用 Vaadin 框架的一个通用库,我们有一个名为 SFlexTabSheet 的组件,它可以完全按照您的意愿去做。

    【讨论】:

      【解决方案2】:

      Vaadin 组件层次结构允许一个组件一次位于一个位置。换句话说,你不能将同一个 Component 实例同时添加到两个地方。

      最好的解决方案是移动您的面板,这样面板就不会被更换,只会更换周围的环境。如果这是不可能的,您只需为每个页面重新创建控件。

      如果您的控件是有状态的,请记住属性可以在字段之间共享,并且所有扩展 AbstractFields 的类都是属性,因此您可以执行类似的操作

      TextField tf1 = new TextField();
      layout1.addComponent(tf1);
      
      TextField tf2 = new TextField();
      tf2.setPropertyDataSource(tf1);
      layout2.addComponent(tf2);
      

      这样,您的两个文本字段由同一个属性备份。因此,值更改后,您的两个文本字段具有相同的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-27
        • 1970-01-01
        • 1970-01-01
        • 2021-09-04
        • 2011-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多