首次使用stackoverflow。所以,请不要太苛刻:)
我有一个小Java项目。我们正在学习如何使用swing构建GUI。我坚持用方法论。
我有一个JFrame
用于GUI,我正在创建4 JPanels
:
菜单(菜单类)
按钮(按钮类)
ActionArea(ActionArea类)
状态栏(StatusBar类)
我被要求在菜单和按钮中有相同的选项。即“菜单”和“按钮”部分中将提供“新建文件”或“打开文件”选项。
我不想复制代码并复制到Menu Class和Buttons Class。我相信有一种方法只能使用两个类中的一个函数。
有人可以帮助我实现这个目标吗?
这是主要代码:
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class GUI extends JFrame {
private Menu menu;
private Buttons buttons;
private ActionArea actionArea;
private StatusBar statusBar;
public GUI() {
super("New GUI");
this.setSize(800, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout (new BorderLayout());
this.menu = new Menu();
this.buttons = new Buttons();
this.actionArea = new ActionArea();
this.statusBar = new StatusBar();
this.setJMenuBar(this.menu);
add(this.toolbar, BorderLayout.NORTH);
add(this.actionArea, BorderLayout.CENTER);
add(this.statusBar, BorderLayout.SOUTH);
}
}
假设函数名称为newFile();
我不想为菜单类编写一个函数,为按钮类编写一个函数。
提前致谢所有
编辑:
this.menu = new Menu();
在menuitems
中创建actions
所需的Menu class
this.buttons = new Buttons();
在jbuttons
actions
所需的Buttons class
actions
完全相同。代码加倍。这就是问题。
答案 0 :(得分:1)
使用Swing Action
。有关在按钮和菜单项中使用它们的详细信息,请参阅How to use Actions。
答案 1 :(得分:1)
你可以使用Action类,它是ActionListener的扩展....你可以在这些类的对象中设置几个属性......你可以看看这行: Tutorial for Using Action classes
和API:Action classes API
它可能对你有所帮助..
答案 2 :(得分:0)
您可以让Button
类将Menu
类的对象作为其构造函数中的参数。现在,通过此对象,您可以访问Action
类的Menu
类,然后可以将它们用作按钮。
如果您仍然无法理解,请提供您的Button
和Menu
课程的代码。