2012-01-05 8 views
0

私はそれを検索しようとしましたが、実際に使用する用語は分かりませんので、結果は得られません。 基本的に、私は1つのクラスにJFrameを作成して、何も継承しませんが、そこには2つのクラスがあります。Farmer.javaとSheepHandlerThread.java最初のクラスで作成したJFrameを使用し、 SheepHandlerThreadはSheep GrazingとBehaviorを処理し、Farmer.javaはマウスクリックの位置に移動する四角形を制御します。別のクラスを使用する

私はすでに答えられた質問をしても謝罪しますが、私は周りを回り始めて自分自身を混乱させるので、ここで助けを求めています。明確化が必要かどうか尋ねる。

おかげで、 ライアン

+0

「継承しない」とは、独自のカスタムJFrameを作成していないということですか? –

答えて

2

私は上記の回答に同意します。それに加えて私はあなたを助ける例を入れています。

class FrameDemo{ 

    private JFrame frame; 
    private SheepHandlerThread sheepHandlerThread; 
    private Farmer farmer; 

    public FrameDemo(){ 
     initComponents(); 
    } 

    private void initComponents() { 
     frame = new JFrame(...); 
     /* Pass frame reference to the 
      Farmer and SheepHandlerThread 
      class  
      */ 
     farmer = new Farmer(frame); 
     sheepHandlerThread = new SheepHandlerThread(frame); 
    } 

} 
+0

ああ!そうですか!これはやや簡単になります!私はちょうどそのような混乱に自分自身を持っていた、私は自分自身をさらに混乱させ、あなたの助けの人に感謝! 編集:あなたの答えをupVoteできません、ごめんなさい:( – RyanSoper

1

2つのオブジェクト何らかの方法でJFrameのオブジェクトへの参照を持っている必要があります。 2つのオブジェクトを構築するときは、それらにJFrameオブジェクトを渡します。次に、コンストラクタはフレームをインスタンスフィールドに格納し、必要なときにいつでもそれらを行いたいものを行います。

これらのオブジェクトはUIに関係するものではなく、フレームにのみサービスを提供する必要があります。この場合、フレームがこれらのサービスを呼び出し、それらのサービスの結果でそれ自体を更新するようにしてください。

関連する問題