有什么想法可以让我使用在 MyApplication.java 中声明的其他类和函数中的布局。我尝试将它们放在参数中它可以工作,但它变得非常复杂例如 xhen 在函数 XI 中调用一个名为 Y 的函数必须传递参数的所有布局,如下所示:
X(layout1,layout2,layout3,layout4) { Y(a,b,c,layout1,layout2,layout3,layout4) }
我尝试使用一个名为 uiHelper 的类,但它不起作用
有什么想法可以让我使用在 MyApplication.java 中声明的其他类和函数中的布局。我尝试将它们放在参数中它可以工作,但它变得非常复杂例如 xhen 在函数 XI 中调用一个名为 Y 的函数必须传递参数的所有布局,如下所示:
X(layout1,layout2,layout3,layout4) { Y(a,b,c,layout1,layout2,layout3,layout4) }
我尝试使用一个名为 uiHelper 的类,但它不起作用
您可以查看 vaadin 的 Blackboard 插件。
从该页面:
有时,具有较深的组件层次结构会带来问题,当您需要通知树中较高的组件在下面的深处发生了某些事情时。您通常有两种选择之一 - 要么将侦听器一直向下传递到层次结构,从而导致更多耦合的代码,要么让中间的每个组件成为侦听器/通知器,将事件一直向上传递。使用 Blackboard,您可以注册任何侦听器以侦听任何事件,并且当该事件被触发时,该事件的所有侦听器都会被触发。这使您的组件保持清洁并摆脱不必要的样板代码。
对于您的示例,您可以创建LayoutChangeListener和LayoutChangeEvent。 MyApplication然后可以实现LayoutChangeListener并且当触发LayoutChangeEvent时,您可以更改布局而无需传递它。