2013-05-20 1 views
0

나는 을 클릭하면 setVisible(false) 중 하나 인 JFrames 세 개가있는 Medical Shop Billing 소프트웨어를 만들고 있습니다. 그러나 컴파일 할 때마다 오류가 표시됩니다.JFrame의 Visible (false)을 설정할 수 없습니다

JFrame f is accessed from within inner class; needs to be declared final 

아무도 도와 줄 수 없습니까?

+0

더 나은 조언을 제공하기 위해 코드를 게시해야합니다. – Hiro2k

+0

1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) [다중 JFrames, 좋은/나쁜 연습의 사용?] 참조 (http://stackoverflow.com/a/9554657/418556) –

+0

기본적으로'JFrame f..'는'final JFrame f..'이어야합니다. SSCCE에 대한 조언이 더 좋을 것입니다. –

답변

1

외부 클래스 개체를 내부 클래스로 참조하는 경우 내부 클래스 개체가 외부 클래스 개체의 컨텍스트에서 만들어집니다. 메서드 실행 중에 메서드가 종료되고 값이 변경되면 어떻게됩니까? 이러한 지역 변수는 지역 변수 임에도 불구하고 존재해야합니다.

해결 방법은 해당 지역 변수 final을 만들어야한다는 것입니다. method 자체가 종료 될 때을 다른 곳으로 복사해야한다는 것을 컴파일러에 알려주는 것입니다 (필요한 경우).

1

외부 클래스의 변수에 액세스해야하는 경우. 이 같은 최종 추가해야합니다

final public JFrame frame 

당신은 위키 백과에 대한 자세한 내용 final (Java) 여기를 읽을 수 있습니다.

+0

죄송합니다, 불과 며칠 전 stackoverflow 게시하기 시작했습니다. –