2013-02-17 2 views
1

이것은 App-Development에 대한 교과서에서 발췌 한 것입니다.Eclipse, 해결할 수 없음

문제는 : 코드에 오류가 하나 있는데, 이클립스로 해결할 수있는 방법이 있어야합니다. 교과서에 대한 해결책은 없습니다.

내 생각에 문제는 "abc.setText" Eclipse에는 6 개의 빠른 수정이 있지만 그 중 아무 것도 작동하지 않습니다.

어떻게 해결할 수 있습니까?

답변

4

TextField 변수 abc은 로컬로 init에 정의되어 있으므로 doSomething 메서드의 범위에서 사용할 수 없습니다. 클래스 멤버 변수로 선언되거나 메서드에 전달 될 수 있습니다. 당신은

private TextField abc; 

을 추가하고

TextField abc = new TextField(); 

abc = new TextField(); 

Understanding Instance and Class Members

+0

완벽한, 감사합니다. – user2080245

1
import java.awt.TextField; 

public class ESA 
{ 
    private TextField abc; 
    public void init() 
    { 
     abc = new TextField(); 
    } 
    public void doSomething() 
    { 
     abc.setText("Hello World"); 
    } 
} 

이 작동합니다 대체 할 수있다. abc은 코드의 doSomething()에서 액세스 할 수 없습니다.

0

저는 같은 문제, 아마도 같은 교과서에서 일했기 때문에이 질문을 보았습니다.

그래서 내가 이미 2 세가 되어도이 질문에 답하고 싶습니다.

"이클립스로 해결할 수있는 방법이 있어야한다. 해결책은 없다."

여기서 쉬운 방법은 "리 팩터링"입니다. "abc"를 마우스 오른쪽 버튼으로 클릭 한 다음 "리 팩터"를 선택하고 "로컬 변수를 필드로 변환"하위 메뉴에서 선택하십시오.

코드에서 필요한 모든 변경 사항은 Eclipse 자체에서 수행됩니다. 결과 코드는 이미 다른 솔루션에 게시 된 코드와 동일합니다.

관련 문제