기본적으로 다른 클래스에서 실행되고 다른 객체에서 작동하는 메소드를 시작하는 시작 버튼이 있습니다.자바 : 액션 리스너를 사용하여 해당 클래스의 객체에서 다른 클래스의 함수를 호출하십시오.
청취자에 대한 나의 코드 :
button1a.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent event) {
// Figure out how to make this work
//sim.runCastleCrash();
}
});
다른 클래스에 대한 내 코드 :
public static void main(String[] args) {
CastleCrash sim;
sim = new CastleCrash();
}
및
public void runCastleCrash() {
System.out.println("Castle Crash is beginning...");
//Other method parts here to be added
}
내가이 너무 열심히 할 수없는 느낌을 얻을 ,하지만 나는 조각이 빠져있다.
어떤 오류가 있습니까? ActionListener를 버튼에 추가하려고 할 때'sim' 변수가 범위 안에 있습니까? 하나의 전형적인 함정은 ActionListener와 같은 익명의 내부 클래스에서 액세스 할 수 있도록 변수가 최종적으로 필요하다는 것입니다. –
내가 오류를 얻을 : 스레드에서 예외는 "주요"상위를 : 해결되지 않은 컴파일 문제 : \t 심 나는 당신이 그 권리에 생각 를 해결할 수없는 그 시뮬레이션이 범위에 포함되지 않는 문제, 하지만 나는 그것을 최종 결정하는 방법을 알아낼 수 없습니다 .... – Myles
답변을 참조하십시오 맥도웰, 그게 내가 대답 할거야. –