자바 paint호출 프로그래머가 관리못하나요?
갅지삘여우
개념적인 질문입니다. 아래 제가 질문한거에 해당하는것인데 더욱 자세한 질문입니다.
프로그래머가 페인트 메서드 자동호출을 제어가능한지 궁금합니다.
repiant말구요. 제가 알고싶은건 프로그램 시작하면 자바가 페인트를 호출합니다.
그리고 제가또 계산해본결과 대략 5120밀리세컨드에 한번더 호출하더군요.
이 두 시점에 호출 못하도록 제어 할수 있는지 궁금합니다.
또 패널 상태가 바뀌어도 호출하던데 이때도 호출 못하게 막고싶습니다.
-
터전
네 수다님 또 답변해주셔서 고마워요. ㅎ_ㅎ
-
Isolation
메써드 오버라이드를 하게 된다면 당연히 부모클래스에서 원래 해야할 이벤트 처리를 해주는게 순서겠죠. super.어쩌구()를 실행해야 할 수도 있다는 말입니다.
-
아름나
전 잘못된사항이 무엇인지 잘 파악을 못하겠습니다. ㅠ_ㅠ
원하시면 소스랑, 실행파일 보내드릴게요. ㅠ_ㅠ -
허우룩
ㅎㅎㅎ... 세부적인 동작은 잘 모르겠으나..-_-;;
뭔가 순서나 사용하는 이벤트가 잘 못 된게 아닐까 싶군요...
보통 작업을 완료한뒤에 업데이트 등을 호출하지 않아서..
작업한 내용이 화면에 적용이 안되는 사례가 아니라...
화면에 멀쩡히 보이던것이..
관련 내용을 클리어 하거나 객체를 새로 생성하지 않았는데도
단순히 리페인팅등으로 페인팅되면서 사라지는 현상이라니......
아무리 제가 GUI쪽 손 뗸지 오래지만....
그럴리가요...^^;; -
개굴츼
저기 아래 질문때문에 해결방법을 찾다가 이거라고 생각했는데 아닌가보네요.
레이블이 페인트 호출때문에 이전상태가 유지가 되지않고 바껴버립니다.
그래서 그것때문에 스위치문에서 자동호출시 디폴트 실행하게 해놨습니다만
디폴트에 아무실행도 안하게 설정해놨으나... 프레임에서는 아에 이전것을 없애버리더군요.
그래서 이거밖에 없다 생각해서 이리되었습니다. ㅠㅠ
구조는 프레임에 패널을 넣었고 패널에 여러 레이블이 들어가있습니다.
즉 초반에도 그렇고 또 프레임창을 최 -
찬들
paint()를 직접 핸들링 해야 할 필요가 있는지 모르겠는데.. .....
권한 자체를 완전히 위임받아서 모든걸 직접 핸들링 하시게된다면..
배보다 배꼽이 더 클텐데요---;;
요청한 기능들이 동작한다면...
나중에 만드신 화면은 의도한대로 동작하지도 안혹..
마우스 지나갈때마다 화면 아작 나고..
최소화했다가 복원해도 화면엔 아무것도 안나오고 그럴텐데요?
페인트를 필요할때마다 호출하는것도 아니고..
기본 동작하는 로직 자체를 동작하지 않도록 제어하기 -
우울녀
답변 감사합니다.
지금 제가 찾아봤습니다만.
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
상위 클래스로 계속 따라 올라가봤는데
인자안받는 페인트 메소드가 없습니다. 혹시 다른 곳에 있나요? 그럴리는 없을텐데...
repaint()는 존재하나 paint() 메소드는 안보이네요. 제가 못찾았다면 죄송합니다. ㅠ_ㅠ -
돋가이
오버라이딩은 java 문법인데요. 제가 답변 다는것보다 입문서를 참조해보세요.
그리고, api로 실제 paint 메소드가 어떻게 선언되어 있는지 확인하시구요. (찾아서 공부하시는게 실력향상에 더 도움이 됩니다. 그리고 귀찮더라도 늘 자바 api를 확인해보세요. 자바 api에 paint 원형이 어떻게 선언되어 있는지요) -
목향
오버라이딩한다음 어떻게 갑을 줘야하는지 궁금합니다.
void public paint(){
}
이안에 무엇을 넣어줘야하는지 궁금합니다.
아무것도 안넣어주면 그래도 실행하더라구요.
이전상태를 유지하고싶습니다. -
봄나
repaint() 말고는 없지 않을까요? 이런거는 자바 관련 문서중에 paint 아키텍쳐 관련해서 썬에서 제공하는 문서를 찾아보는게 제일 좋겠죠.
그리고 정 관리하고 싶다면, AWT에서는 paint() 메소드를 오버라이딩 하는 방법도 있겠죠. ^^; (정답은 아닙니다.)