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);
}

次に、メイン メソッドの最初の行を次のように変更する必要があります。

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

2 番目の関数では、戻り値の型を宣言する必要があります。

関数が何も返さない場合は、voidを使用します。

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

MindFinderFrameインスタンス化するタイプの場合、という名前のクラスが必要です。MindFinderPanel を MindFinderFrame という名前にするつもりでしたか? (または、逆に、おそらくあなたは電話をかけるべきです。

MindFinderPanel m = new MindFinderPanel(...);

于 2013-03-11T13:06:29.003 に答える
1

メソッド MineFinderFrame(int nc, int nr,int mod) は、それが返す型を示していません。

コンストラクターということですか?その場合、クラスと同じ名前にする必要があります。

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があります (ではなくMineFinderFrame)。それ以外の場合は通常のメソッドであり、戻り値の型が必要です。

于 2013-03-11T13:07:49.163 に答える
0
public MineFinderFrame (int nc, int nr,int mod)

は MineFinderFrame というクラスのコンストラクターであり、それを MineFinderPanel というクラスのコンストラクターとして使用しようとしています。

于 2013-03-11T13:08:13.713 に答える