1 버튼 클릭 -> 2 OS 감지 -> 3 JVM이 ActionEvent 객체를 올림 -> 4 리스너가 청취(Action Listener)
@ 이벤트 구현 순서
1.이벤트를 구현하는 클래스 작성
implements 리스너 종류명시
2.해당 리스너의 메서드 오버라이딩
3.이벤트를 구현하고 싶은 컴포넌트에 이벤트 구현 객체 부착, 연결
마우스 클릭했을때
javascript--->click
java -->ActionEvent(jvm이 메모리에 올림 이것을 ACTION 리스너가 받음)
//버튼에 대한 이벤트를 처리하려면 청취자로 만들어야 한다.(리스너가 되어야함)
//리스너란? 자바가상머신으로부터 각종 이벤트 객체를 청취하는 객체
키보드리스너 --->키 리스너
윈도우관련리스너--->윈도우 리스너
@ Adapter : 프로그래머 대신 해당 추상메서드를 3개이상 리스너를 구현해놓은 클래스
ActionListener는 Adapter가 지원이 안된다. 메서드가 하나이기 때문에....
KeyListener - 는 adapter가 지원
하나의 자바파일에 두개의 클래스가 존재하면 내부클래스 파일이 생성된다.
내부 익명 클래스
내부 익명 클래스?
원칙상 추상클래스는 new연산자로 메모리에 올릴 수 없다!! 주의할 점은 내부익명클래스의 모습만 보고
추상클래스를 new로 올린다고 착각하지 말것!
즉 자식 클래스가 물리적으로 .java 형태로 존재하는 것이 아니라, 메서드 내부의 코드로서 존재
내부 익명클래스는 추상클래스만 올수 있는 것이 아니라 상속관계에 있는 모든 클래스가 올 수 있다.
내부 익명 클래스 장점 : 하나의 클래스로 갈수 있다. 물리적으로 클래스가 필요하지 않다.
내부 익명 클래스는 물리적인 자바파일을 생성하지 않고도 자식 클래스를 실행타이밍에(=runtime)에
올려 쓰는 기법