我正在处理我正在处理的一小段代码。我正在一个包含我的main方法的类中扩展JFrame。我是Java的新手(在大学里学过它,有一些练习,但仍然卡住了)。我的locate方法中有一个返回类型,我的IDE,eclipse NEON,正在说转换为COMPONENT。这是我的代码:
import javax.swing.JFrame;
public class Board extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
boolean result;
int counter2;
int counter = 100000;
Point point = new Point(1,2,3);
int to_be_changed = 100000;
Point[] point2 = new Point[100000];
private int fortree = 0;
public static void main(String[] args)
{
Board bb = new Board();
int colChange = 1;
bb.add(1 ,0 ,1);
new work(bb);
}
public void add(int xco, int yco, int Colr)
{
point2[point2.length - counter] = new Point(xco, yco, Colr);
counter--;
counter2++;
}
public boolean Filled(int x1, int y1)
{
int i = 0;
do{
if (i > 100000){ i = 0; }
result = ((point2[i].getPoinx() == x1) && (point2[i].getPointy()== y1));
i++;
}while((result == false) && (i != counter2));
return result;
}
public Point locate(int x1, int y1)
{
Point backer = new Point(0,0,0);
for (int j = 0; ((j < point2.length) && (result == false) && (point2[j]) != null); j++ )
{
if ((point2[j].getPoinx() == x1) && (point2[j].getPointy() == y1))
{
backer = point2[j];
result = true;
}
}
return backer;
}
public void setfortree()
{
this.fortree++;
}
public int getfortree()
{
return this.fortree;
}
}
class work
{
work(Board y)
{
Intelligence p = new Intelligence();
System.out.println(p.tree(0, 0, y, 1, 1));
}
}
有人可以告诉我发生了什么事吗? 非常感谢
答案 0 :(得分:3)
JFrame类已包含很多方法。您正在覆盖已有的方法。其中一种方法属于超类Container并具有
Component
。相同的参数列表(两个整数)。
@Deprecated public Component locate(int x,int y)
Eclipse了解这一点,然后提醒您locate
需要返回此Component
。对此进行简单测试可能是重命名您的方法。
答案 1 :(得分:0)
您正在展开JFrame
并且您有一个名为locate
的方法,该方法与Container#locate
方法具有相同的签名(JFrame
的层次结构:JFrame > Frame > Window > Container
,所以parent类隐式有一个名为locate
)的方法。所以你要覆盖它,但你的返回类型与Container#locate
不匹配。
你有两种方法可以解决它:
locate
类的方法,请将Container
方法的名称更改为其他名称。祝你好运