【发布时间】:2016-08-12 00:57:03
【问题描述】:
contains 方法可以用于我自己编写的类的实例吗?
我创建了一个名为Ana 的类,在另一个类中,我创建了它的两个实例,分别称为cookie 和maccaroni。这是其中之一:
Ana cookie = new Ana(cc.c, 20, 450);
在某些时候我试图调用
if (maccaroni.contains(cookie.image(), cookie.xi(), cookie.yi())
{
return true;
}
但 Netbeans 将其下划线表示错误。当我将鼠标悬停在它上面时,它说:
no suitable method found for contains(Image,int,int) method Component.contains(int,int) is not applicable (actual and formal argument lists differ in length) method Component.contains(Point) is not applicable (actual and formal argument lists differ in length) method JComponent.contains(int,int) is not applicable (actual and formal argument lists differ in length)
为什么下面的代码被Netbeans认为是错误的?
这是我指的类。
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JComponent;
public class Ana extends JComponent
{
public static Image p;
public static int xx;
public static int yy;
public Ana(Image io, int x, int y)
{
p = io;
xx = x;
yy = y;
repaint();
}
@Override
public void paint(Graphics g)
{
g.drawImage(p, xx, yy, null);
}
public Image image()
{
return p;
}
public int xi()
{
return xx;
}
public int yi()
{
return yy;
}
}
【问题讨论】:
-
"这段代码有什么错误" 为什么你认为有错误?您收到任何错误消息吗?你能把它包括在你的问题中吗?
-
@Parta
maccaroni是什么类型的东西? -
JComponent.contains(int x, int y)接受两个整数参数。但我不知道maccaroni是不是JComponent。 -
顺便说一句,你确定你的字段应该是
static吗?你知道static是什么意思吗?也很可能他们应该是private。 -
@Pshemo 我已经纠正了这个问题。我正在使用 JComponent 类的 contains 方法。