如何在Java中使用另一个类的函数

时间:2014-05-14 05:48:07

标签: java swing class

首次使用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完全相同。代码加倍。这就是问题。

3 个答案:

答案 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类,然后可以将它们用作按钮。

如果您仍然无法理解,请提供您的ButtonMenu课程的代码。