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,等等。
我不知道我必须使用哪个参数,所以我被卡住了。
提前感谢!!
答案 0 :(得分:2)
将step.value
参数更改为MenuPanel menuPanel
监听器,因为唯一的原因是为了更容易将ActionListener
附加到其上,按钮不需要了解ActionListener
答案 1 :(得分:1)
您可以声明一个界面IPanel
,并让您的QuitPanel
,HighScorePanel
和MenuPanel
实现该界面。我相信这些面板中的每一个都必须实现一些常用方法,这些方法的声明可以移动到IPanel
接口。然后,您可以将IPanel
作为参数传递给构造函数而不是MenuPanel
。
答案 2 :(得分:0)
如果MenuPanel是JPanel的一个实例,那么您可以像这样更改代码......
public Button(String backgroundPath,int x, int y, JPanel pane);