2013-01-19 2 views
-1

자바에 대한 최종 프로젝트를 진행하기 위해 Mastermind Peg 게임을하기로 결정했습니다.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 자리 응답/코드가 생성됩니다. 나는이 오류가 무엇을 의미하는지 이해하지

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

:

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

는 오류가 발생합니다.

+0

: 당신은 방법의 범위 내에서 존재하지 않는 변수 submitButtonActionPerformed (...)를 사용 ... 방법 및 잘 될 것입니다 코드에서 int[] answerdigit = new int[4];이 문을 넣어. Java Variable Scope에서 오류의 의미에 대해 읽어보십시오. http://www.java-made-easy.com/variable-scope.html –

답변

1

변수 범위 문제가 있습니다. answerdigit은 startButtonActionPerformed 메서드에 로컬로 선언되므로이 메서드 내부에서만 볼 수 있으며 단순히 다른 곳에 존재하지 않습니다. 이 변수를 클래스의 다른 위치에서 사용하려면 배열 변수 answerdigit를 클래스에 선언해야합니다. 당신이 & 어딘가에 선언 한 그것을 accessising를 들면, 그 지역의 범위 만 액세스 할 수 있기 때문에

+0

답장을 보내 주시면 감사하겠습니다. 나는 그것을 수업에서 선언하려고 노력할 것이고, 해결책을 생각해 내는지 볼 것입니다. (아마도 나중에 문제가 생기면 다시 돌아올 것입니다 * shudders *) –

+0

이 질문과 같은 질문을 게시하기 전에 FAQ를 읽어보십시오. –

+0

http://stackoverflow.com/faq 이제 모든 질문에 대한 철저한 검색만으로는 충분하지 않습니다. –

2

answerdigit 다른 어디서나 클래스를 선언해야 액세스 할 수 없습니다

예를 들어,

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)의 범위에 속하지 않는 클래스의 범위에 있어야합니다.

그냥

+0

이 문제를 해결했다고 생각합니다. 모든 답변에, 대단히 감사합니다! –

관련 문제