2017-09-18 23 views
0

今この問題を1日以上解決しようとしていて、現在白い旗を投げています。 UMUCでこのクラスを受講すると、何の助けもなく自習用のカリキュラムになりますので、ここでこの質問をすることができて本当に感謝しています。Java ActionEventが異なるクラス

私は概念を取り巻く頭をもらえないので、概念的にはこの質問をするつもりです。

ボタンを作成するGUIクラス(JPanelのサブクラス)があります。 GUIクラスでは、ボタンがActionListenerを使用してクリックされたことを認識し、テキストフィールドで検証テストを実行します。ここまでは順調ですね!

ここで、テキストフィールドの入力を確実にする検証テストの後、この入力を使用して別のクラスの変数(Accountと呼ばれる)に追加したいと考えています。

メインメソッドを含む3番目のクラスでは、私はAccountクラスの2つのインスタンスを作成しました:チェックと保存、Frameとフレームの追加。

問題: (1)GUIクラスのボタンをクリックしたときに、アカウントクラスのaddメソッドをどのように起動させるのですか? (2)アカウントクラスの特定のインスタンスに適用されることを確認するにはどうすればよいですか?

答えて

1

これを行う方法はいくつかあります。あなたのJPanelActionListenerプロパティを提供し、ボタンからの入力を検証したらトリガーします。これは基本的なオブザーバパターンです(すでにJButtonで使用しています)。

問題は、パネルから情報を取得する方法です。あなたはパネル上にゲッターを提供することができますが、これはコード内の結合を強化し始めます。

Aわずかに良い解決策は、私が渡し避けたいさらにデカップリングAPI

、あなたがリスナーにGUIから必要な情報を渡すことができ、独自のリスナー/オブザーバーインターフェースを提供するかもしれません可能であればGUIにAccountを入力してください。実際にアカウントを使用/変更する何らかの理由がない限り、責任を分けておくのが最善です.GUIの責任はできるだけ情報を取得して検証し、オブザーバー/リスナー。

この場合、リスナ/オブザーバをアカウントの特定のインスタンスで囲むだけでよいので、トリガされたときに正しいアカウントで操作されます。

関連する問題