2011-12-27 18 views
1

私はJava Swing GUIアプリケーションを作っています。私は問題を引き起こしている2つのクラスを持っています。私は通常のメニューバーオプションを扱うメニューバークラスを作成しました:2つのクラスの依存関係?

File -> Exit 
Edit -> Cut, Copy , Paste 
Tools -> Options 
Help -> About 

最後のクラスはオプションクラスです。現在のところ、JFrameを更新してJComboBoxを使用して見た目や感覚を変えるだけです。 MercuryFrameはUIのデフォルトのJFrameです。

現在のコードでは、今、私が午前問題は、私たちのMenuBarクラスがクリックされるたびについて表示するのJFrameを持つようにしたいです

OptionWindow option = new OptionWindow(mercuryFrame , notesWindow); 
MercuryMenuBar menuBar = new MercuryMenuBar(mercuryFrame , option); 

です。それは現在のバージョンを言うことを示す。この設定では、optionWindowはAboutについてJFrameを更新しません。今、私はこのことでは、私はoptionWindow関数を呼び出すときに値を渡すことができますと言って修正することができます。

openOptionWindow(menuBarJFrame); 

または最後に私が独自のクラスについて作るとちょうどそれらの両方に渡すことになると考えられ、他のオプションを設定メソッド

option.setHelpFrame(JFrame); 

を使用して、クラスの宣言の後に。

AboutWindow about = new AboutWindow(); 
OptionWindow option = new OptionWindow(mercuryFrame , notesWindow , about); 
MercuryMenuBar menuBar = new MercuryMenuBar(mercuryFrame , option , about); 

いずれの方法でも正しい方法がありますか?それをどうやって設計しているのか、それは問題なのでしょうか?

ありがとうございました。

UPDATE

私は第三の方法で行ってきました。

AboutWindow about = new AboutWindow(); 
OptionWindow option = new OptionWindow(mercuryFrame , notesWindow , about); 
MercuryMenuBar menuBar = new MercuryMenuBar(mercuryFrame , option , about); 

しかし、これが正しいと思われる場合は、私は聞いてみたいと思います。

答えて

0

私は第三の方法で行ってきました。

AboutWindow about = new AboutWindow(); 
OptionWindow option = new OptionWindow(mercuryFrame , notesWindow , about); 
MercuryMenuBar menuBar = new MercuryMenuBar(mercuryFrame , option , about);