正如标题所示,我希望将我的Java项目中的现有类实现为ActionListener
类。为了帮助您理解我的问题,我将首先解释一下这个场景:
我被指派创建一个Graphics包;这将从 CommandPanel JTextField
获取用户输入,以在满足并完成条件操作时从用户绘制指定的行。 GUI由4个类组成,其中3个为extend JPanels
。
我遇到的问题是尝试将指定的GraphicsPanel
课程实施到我的CommandPanel
ActionListener
。
我希望能够在满足要求时绘制一条线,以确保在我的主类中查看的相同GraphicsPanel中绘制线(此处未包含)。
语句gp
按预期在public CommandPanel(GraphicsPanel gp)
段中运行,但是当我尝试将gp
调用到我的ActionListener
以在该面板中绘制一条线时,它无法认为它是一个已有的阶级。
可以进一步澄清,以确保您了解手头的问题;任何帮助将不胜感激。 :-D
答案 0 :(得分:1)
调用构造函数时,必须将gp作为实例变量存储在CommandPanel中:
private GraphicsPanel gp;
public CommandPanel(GraphicsPanel gp) {
this.gp = gp;
}
或者,将gp传递给ActionListener并将其存储在那里的实例变量中:
public CommandPanel(GraphicsPanel gp) {
ButtonListener listener = new ButtonListener(gp);
}
public class ButtonListener implements ActionListener {
GraphicsPanel gp;
public ButtonListener(GraphicsPanel gp){
this.gp = gp;
}
}