如何在多个面板中使用类

时间:2015-05-08 08:42:10

标签: java jbutton redundancy

我正在进行坦克游戏。为了避免冗余使我在菜单面板上的按钮我写了一个类按钮:

package menu;

import java.awt.Image;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;

public class Button extends JButton{

    public JButton button;
    public ImageIcon buttonImage;

    public int x, width, height;

    public String backgroundPath;
    public int y;



    public Button(String backgroundPath,int x, int y, MenuPanel menuPanel)

    {
        super();
        this.backgroundPath = backgroundPath;
        this.x = x;
        this.y = y;

        buttonImage = new 
            ImageIcon(PlayPanel.class.getResource(backgroundPath));
        this.setIcon(buttonImage);
        this.setBounds(x, y, buttonImage.getIconWidth(), 
            buttonImage.getIconHeight());
        this.addActionListener(menuPanel);   
    }
}

在方法的构造函数中我有MenuPanel menupanel但我希望能够使用这个代码是多个面板,如QuitPanel,HighScorePanel,等等。

我不知道我必须使用哪个参数,所以我被卡住了。

提前感谢!!

3 个答案:

答案 0 :(得分:2)

step.value参数更改为MenuPanel menuPanel监听器,因为唯一的原因是为了更容易将ActionListener附加到其上,按钮不需要了解ActionListener

答案 1 :(得分:1)

您可以声明一个界面IPanel,并让您的QuitPanelHighScorePanelMenuPanel实现该界面。我相信这些面板中的每一个都必须实现一些常用方法,这些方法的声明可以移动到IPanel接口。然后,您可以将IPanel作为参数传递给构造函数而不是MenuPanel

答案 2 :(得分:0)

如果MenuPanel是JPanel的一个实例,那么您可以像这样更改代码......

public Button(String backgroundPath,int x, int y, JPanel pane);