게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 ImageObserver 질문입니다.
게시물ID : programmer_3382짧은주소 복사하기
작성자 : 시로소사로소
추천 : 0
조회수 : 3707회
댓글수 : 8개
등록시간 : 2014/05/20 00:09:58
ava.awt.ImageObserver
:: 는 image loading process를 모니터하는 역할을 하는데 이미지를 로딩하는 thread는 새로운 data가 도착하면 ImageObserver에게 알리게 된다. Component 클래스는 ImageObserver 인터페이스를 구현하기 때문에 paint()라는 메소드를 호출하게 되면 이미 해당 Component의 paint()를 override를 해서 쓰고 있는 것이기 때이다. 따라서 drawImage를 호출할 때 마지막 인자로 this를 넘겨주는 것이 안전하다.
 
책에는 이미지가 로딩되는데 시간이 걸리기 때문에 로딩이 진행되는 상태에 따라 화면에 다시 그려줘야 할 필요가 있다. 그래서 이미지가 로딩되고 있는 상태를 알려줄 대상을 ImageObserver로 지정해야한다. 모든 AWT컴포넌트는 ImageObserver 인터페이스를 구현했기 때문에 ImageObserver로 컴포넌트 자신(this)을 지정하는 것이 보통이다.
 
인터넷 결과 : 이미지의 정보를 전달받아서 이미지를 업데이트 시키는 역활을 한다. 이미지가 완전히 불려지지 않았을 때 drawImage를 호출하면 ImageObserver 객체에게 그 정보가 전달되고 ImageObserver는 이미지를 관찰하고 있다가 이미지가 완전히 불려지면 이미지를 업데이트 시킨다. 따라서 이미지가 그려질 컴포넌트를 ImageObserver로 두면 된다.
 
제가 머리가 나빠서 이해가 잘 되지 않습니다.
 
작성자가 초딩 수준이다. 라고 생각해주시고 알기 쉽게 풀이 좀 해주시면 안 될까요?
 
g.drawImage(img,0,0,0,0,this)와 g.drawImage(img,0,0,0,0,null)의 차이점과 ImageObserver 가 뭘 하는지에 대하여..
 
보통은 this를 많이 적는데 그냥 테스트용으로 만들어 본 클래스에 this를 사용하지 않고 null을 사용해야 이미지가 적용되는 점이 생겨서.. 이 차이점을 구글링을 해도 그냥 설명만 나와있고 영어로 된것을 번역기 돌리니 이해도 잘 안되고 하여 질문 올립니다..
 
과제글이 아니고 공부용 질문이니 답변 좀 해주시면 고맙겠습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호