2类依赖?

时间:2011-12-27 22:55:42

标签: java class

我正在制作一个Java Swing GUI应用程序。我有2个课程让我有问题。我创建了一个处理正常菜单栏选项的菜单栏类:

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

最后一个类是Options类。目前只需通过JComboBox将JFrame更新为您想要的摇摆外观。 MercuryFrame只是我用户界面的默认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 );

这些方法中的任何一种都是正确的方法吗?或者这是我设计它的问题?

感谢您的帮助。

更新

我采用了第三种方法。

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

但我很乐意听到你认为这是否正确。

1 个答案:

答案 0 :(得分:0)

我采用了第三种方法。

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