在NetBeans for Java中编译此类。我试图简单地向每个JPanel添加一个ActionListener。但是,当我输入代码时:
`addActionListener(new SquareMouseListener);`
我收到错误:
Cannot Find Symbol;
method addActionListener(MinePanel.SquareMouseListener)
location: class MinePanel
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.*;
import javax.swing.JPanel;
public class MinePanel extends JPanel{
final private int xPos, yPos;
final private int numXPanels, numYPanels;
final private boolean isBomb;
private MineFrame holderFrame;
private boolean seen;
public MinePanel(int xPos, int yPos, int numXPanels, int numYPanels, MineFrame holderFrame)
{
this.xPos = xPos;
this.yPos = yPos;
this.numXPanels = numXPanels;
this.numYPanels = numYPanels;
if(Math.random()<.1)
{
isBomb = true;
}
else isBomb = false;
seen = false;
this.holderFrame = holderFrame;
addActionListener(new SquareMouseListener());
}
@Override
public void paint(Graphics g)
{
//Color thisColor = new Color((float)Math.random(), (float)Math.random(), (float)Math.random());
g.setColor(Color.BLACK);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(Color.LIGHT_GRAY);
g.fillRect(1,1,getWidth()-2,getHeight()-2);
}
private class SquareMouseListener implements ActionListener
{
@Override
public void actionPerformed(ActionEvent ae)
{
System.out.println("Action Performed");
}
}
}
我该怎么办? Netbeans告诉我导入:
import static com.sun.java.accessibility.util.AWTEventMonitor.addActionListener;
但是我知道这不对,因为我尝试了它并且它不起作用,因为addActionListener应该包含在java.awt.event中。*;导入上面。
提前致谢!
答案 0 :(得分:2)
只需输入this.add
并按ctrl + space即可。您将看到可以向JPanel添加哪种类型的侦听器。
可能你需要MouseListener。
this.addMouseListener(new YourListener());
其中YourListener
实现MouseListener
接口。
答案 1 :(得分:0)
我弄清楚问题是什么,我想发一个答案以防其他人在看。
尝试将 ActionListener 添加到JPanel时存在问题,这是无法完成的。 JPanel没有预定义的addActionListener()方法,因为它是一个较低级别的组件。正如@Jigar Joshi所说,JPanel没有定义Action Listener事件。
感谢大家的帮助!