扩展JFrame

时间:2016-11-13 07:40:33

标签: java jframe

我正在处理我正在处理的一小段代码。我正在一个包含我的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));
    }
}

有人可以告诉我发生了什么事吗? 非常感谢

2 个答案:

答案 0 :(得分:3)

JFrame类已包含很多方法。您正在覆盖已有的方法。其中一种方法属于超类Container并具有

  • 作为返回类型a 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不匹配。

你有两种方法可以解决它:

  1. 将您的返回类型更改为组件,因为eclipse建议您。
  2. 如果您不想覆盖locate类的方法,请将Container方法的名称更改为其他名称。
  3. 祝你好运