1
我在製作Java Swing GUI應用程序。我有2個課程導致了我的問題。我已經創建了一個菜單欄類來處理正常的菜單欄選擇:2類依賴關係?
File -> Exit
Edit -> Cut, Copy , Paste
Tools -> Options
Help -> About
最後一類是一個選項類。目前只是通過JComboBox將JFrame更新爲您想要的外觀和感覺。 MercuryFrame只是我用於UI的默認JFrame。
目前的代碼是
OptionWindow option = new OptionWindow(mercuryFrame , notesWindow);
MercuryMenuBar menuBar = new MercuryMenuBar(mercuryFrame , option);
現在我遇到的問題是我希望我們的MenuBar類有一個JFrame顯示關於被點擊時。這表明可以說當前版本。現在在這個設置中,optionWindow不會更新關於JFrame。現在我可以通過在調用optionWindow函數時傳遞值來解決此問題。
openOptionWindow(menuBarJFrame);
,或者使用setter方法
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);
但是我很想聽聽你是否認爲這是正確的。