0

他のクラスや関数から MyApplication.java で宣言されたレイアウトを使用できるようにするアイデアはありますか? 私はそれらをパラメータに入れようとしましたが、それは非常に複雑になりますたとえば、関数XIでYという名前の関数を呼び出すxhenは、次のようなパラメータですべてのレイアウトを渡す必要があります。

X(レイアウト1、レイアウト2、レイアウト3、レイアウト4) { Y(a、b、c、レイアウト1、レイアウト2、レイアウト3、レイアウト4) }

uiHelper という名前のクラスを使用しようとしましたが、機能しませんでした

4

1 に答える 1

1

vaadin の Blackboard アドオンをご覧ください。

https://vaadin.com/addon/blackboard

そのページから:

コンポーネントの階層が深いと問題が発生することがあります。ツリーの上位にあるコンポーネントに、その下で何かが発生したことを通知する必要がある場合です。通常は 2 つの選択肢があります。リスナーを階層のずっと下まで渡して、より結合されたコードにするか、間にある各コンポーネントをリスナー/通知子にして、イベントをずっと上に渡します。Blackboard を使用すると、任意のリスナーを登録して任意のイベントをリッスンできます。そのイベントが発生すると、そのイベントのすべてのリスナーがトリガーされます。これにより、コンポーネントがクリーンに保たれ、不要な定型コードが取り除かれます。

あなたの例では、LayoutChangeListenerLayoutChangeEventを作成できます。 その後、 MyApplicationはLayoutChangeListenerを実装でき、LayoutChangeEventが発生すると、レイアウトを渡さずに変更できます。

于 2012-05-13T09:28:56.210 に答える