java – 从布局中删除组件失败

前端之家收集整理的这篇文章主要介绍了java – 从布局中删除组件失败前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在处理来自 Ikarus widgetset附加组件的SlidingPanel.
我正在尝试使用removeComponent()从视图中删除此Panel,当我在服务器端收到一些“特殊”事件时(例如用户单击按钮或窗口重新调整大小).但该组件仍在视图中可见.我试图调试数据UI收到:

活动前:

-Response:
-change format=uidl pid=PID0
-com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=590px width=815px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true        layoutRelativeHeight=true layoutRelativeWidth=true
      +variables
       -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
       +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
       +com.vaadin.terminal.gwt.client.ui.VPanel
       +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
       +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility
       +com.velociti.ikarus.widget.client.ui.VIkarusSlidingPanel

活动结束后:

-Response:
   -change format=uidl pid=PID0
   -com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=995px width=1853px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true   main=true layoutRelativeHeight=true layoutRelativeWidth=true
      +variables
             -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
             +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
             +com.vaadin.terminal.gwt.client.ui.VPanel
             +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
             +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility

我从响应中清楚地看到 – 窗口不再包含VIkarusSlidingPanel – 但实际上它仍然存在,因为它没有从DOM中删除.

>唯一可以帮助我的东西 – 重新加载页面.
>从同一事件的窗口中删除按钮 – 工作完美.
> setVisible(false)不起作用.我在尝试时收到一个空白页面
在此之后重新加载页面. (抛出javacript异常)

问题是什么?有人可以帮我解决一下吗?

解决方法

检查您的组件是否具有即时状态.
在Vaadin中,它只是通过setImmediate(true)在组件上进行设置.
我认为,删除组件的最佳方法是通过setVisible(false)隐藏它.

无论如何,希望你能找到解决方案.

猜你在找的Java相关文章