2013-01-19 43 views
-1

對於我介紹Java的最後一個項目,我決定做一個Mastermind Peg Game。netbeans中的「找不到符號」錯誤(Java Netbeans 6.5)

這是提交按鈕代碼:

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) { 

    Integer guess1, guess2, guess3, guess4; 
    Integer rightnumber = 0, rightposition = 0; 

    guess1 = Integer.parseInt (firstInput.getText()); 
    guess2 = Integer.parseInt (secondInput.getText()); 
    guess3 = Integer.parseInt (thirdInput.getText()); 
    guess4 = Integer.parseInt (fourthInput.getText()); 

    //Values are compared to the actual guess. 
    //(THIS IS WHERE I GET THE FOLLOWING ERROR: 
    //"cannot find symbol, symbol : variable answerdigit, 
    //location: class finalproject.Singleplayer" 

    if (guess1 == answerdigit[0]); 
    { 
     rightposition = rightposition + 1; 
    } 
} 

這是啓動按鈕。這裏生成4位數的答案/代碼。

private void startButtonActionPerformed(java.awt.event.ActionEvent evt) 
{            
    // Declare variables for 4 digit answer, guess for each number 
    Integer one, two, three, four; 

    //Generate random number between 1 and 6 for each digit in the answer 
    int[] answerdigit = new int[4]; 

    for(int i=0;i<4;i++) 
    { 
     answerdigit[i]=(int)(Math.random()*6+1); 
    } 
}    

我得到一個錯誤:

cannot find symbol, symbol : variable answerdigit, location: class finalproject.Singleplayer 

我不明白是什麼錯誤意味着。

+0

您使用的變量,它不是方法的範圍內存在submitButtonActionPerformed(...)。閱讀Java變量範圍,瞭解錯誤的含義:http://www.java-made-easy.com/variable-scope.html –

回答

1

你看起來有一個變量作用域問題:answerdigit被聲明爲startButtonActionPerformed方法的局部變量,因此只能在這個方法內部可見,並且根本不存在於其他地方。如果你想在類的其他地方使用這個變量,那麼數組變量answerdigit必須在類中聲明。

+0

感謝您的回覆和建議。我會嘗試在課堂上宣佈它,看看我是否提出了一個解決方案。 (稍後可能會回來,以後會出現問題*不寒而慄*) –

+0

在發佈更多問題之前,請仔細閱讀FAQ。 http://stackoverflow.com/faq –

+0

會做什麼,我現在知道對所有問題進行徹底搜索是不夠的。 –

2

answerdigit是無法訪問的,因爲你已經宣佈它的地方&也僅僅是局部範圍訪問,爲accessising任何其他地方,你必須聲明它在類

例如

class cls 
{ 
int[] answerdigit; 
//your remaining code 
} 

您在

private void startButtonActionPerformed(java.awt.event.ActionEvent evt) 

宣佈它和

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) 

這就是爲什麼它是給錯誤訪問它。

+1

哦,是啊!我是天才! jk jk,會花上幾個小時沒有你的傢伙的寶貴意見。 –

0

int[] answerdigit = new int[4];應該在該範圍內的類不在private void startButtonActionPerformed(java.awt.event.ActionEvent evt)這個方法的範圍內!

只要把int[] answerdigit = new int[4];這個說法出來的方法和你的代碼將被罰款的... :)

+0

我相信我已經解決了這個問題。對於所有答案,非常感謝! –