0

无法编译此代码,我收到一条错误消息:

invalid method declaration; return type required public MineFinderFrame(int nc, int nr,int mod)

请问有人可以修改我的代码吗?

class MineFinderPanel extends JPanel implements MouseListener
 {
int numCols;
int numRows;
int myModel;


 public static void main(String[] args)
 {
    MineFinderFrame w = new MineFinderFrame(30,50,42);
    w.numRows = 50; // 50 rows
    w.numCols = 20; // 20 columns
    w.myModel = 42;
    w.setVisible(true);
}

public MineFinderFrame(int nc, int nr,int mod)
{
   numCols = nc;
   numRows = nr;
   myModel = mod;
   addMouseListener(this);

}
4

6 回答 6

4

如果重命名类,则还必须重命名此类中的构造函数。

所以我会从这个开始:

public MineFinderPanel(int nc, int nr,int mod)
{
   numCols = nc;
   numRows = nr;
   myModel = mod;
   addMouseListener(this);
}

然后,您还必须将 main 方法中的第一行更改为

MineFinderPanel w = new MineFinderPanel(30,50,42);
于 2013-03-11T13:06:01.250 回答
1

您的第二个函数需要声明一个返回类型。

如果您的函数不应该返回任何内容,请使用void

public void MineFinderFrame(int nc, int nr, int mod)
于 2013-03-11T13:05:28.927 回答
1

方法 MineFinderFrame(int nc, int nr,int mod) 没有说明它返回什么类型。

你的意思是它是构造函数?如果是这样,is 应该与类同名:

public MineFinderPanel(int nc, int nr,int mod) {
  numCols = nc;
  numRows = nr;
  myModel = mod;
  addMouseListener(this);
}
于 2013-03-11T13:06:59.273 回答
1

MineFinderFrame应该是构造函数?

如果是,它必须与类同名(MineFinderPanel, not MineFinderFrame)。否则,它是一个普通的方法,它必须有一个返回类型。

于 2013-03-11T13:07:49.163 回答
1

您需要一个名为 的类MindFinderFrame,如果那是您要实例化的类型。您的意思是将 MindFinderPanel 命名为 MindFinderFrame 吗?(或者,换一种方式,也许你应该打电话,

MindFinderPanel m = new MindFinderPanel(...);

于 2013-03-11T13:06:29.003 回答
0
public MineFinderFrame (int nc, int nr,int mod)

是一个名为 MineFinderFrame 的类的构造函数,您正试图将它用作名为 MineFinderPanel 的类的构造函数。

于 2013-03-11T13:08:13.713 回答