2009-08-28 14 views
2

これはおそらく本当に単純な問題ですが、どうやってそれを行うのか分かりません。Java:クラス間で変数を渡す

私は、コンボボックスやスライダーから変数を取るリスナーを持つGUIクラスを持っています。これらの変数を、そのクラスのオブジェクトで実行される別のクラスのメソッドに渡す必要があります。

どうすればいいですか?

+0

「そのクラスのオブジェクト上で実行される別のクラスのメソッドとは何か"? –

答えて

4

一般的なアプローチは2つあります。ダイアログによく使用される単純なものは、選択された値(例えば、コンボボックス選択)を他のクラスに利用可能にし、第2のものは他のクラスをオブジェクトに登録して更新通知を受け取ることを可能にする。

まずアプローチ

  1. ストア(プライベート)のメンバ変数であなたのGUI要素の実際の選択(のような:private String currentSelection)。これは、すでに実装したリスナーによって行われます。
  2. (誰かがOKボタンを押したように)ダイアログが行われるとString getSelection()
  3. のようなメソッドを実装し、単にあなたがのためのダイアログを提供する場合、これは使用することができますgetSelection()方法

を呼び出して値を取得ユーザがいくつかの値を入力する。ファイル選択ダイアログは典型的な例です。 Observerパターン(リスナクラス、最終的にイベントクラス)

を実装

第二のアプローチ

  1. :あなたは、現在の選択に「リアルタイム」のアクセスが必要な場合は、使用パターンは少し複雑すぎて段階的かつ詳細に説明することはできませんが、興味があり、実際にこの変更にリアルタイムでアクセスする必要がある場合は、多くのドキュメントや例があります。

1

(シンプルなデータクラス(カップリングを最小限に抑えるために、理想的にはインターフェイスに面している)は、このトリックを行う必要があります。また、実行時にデータメンバ名などが変化する場合は、java.util.Mapが適切かもしれません。

1

JavaのObserverを使用して、状態が変化しているときに任意のオブジェクトを引数として渡すことができます。

0

パラメータを使用します。

otherObject.doStuff(comboBoxValue, slider1Value, slider2Value); 

あなたが呼び出しているメソッドを使用して、渡したいパラメータの数を受け入れるように宣言する必要があります。

class OtherObject { 
    ... 
    void doStuff(int value1, int value2, int value3); 
} 
関連する問題