안녕하세요~하노이 타워 질문입니다
반율하
안녕하세요..학원에서 열심히 자바를 공부하고 있는 학생입니다..
월요일부터 하노이타워 스윙으로 구현하는거를 해오라구 해서 열심히 하구 있는데요..
구현은 대충했는데..중간단계가 안보이고..처음 시작이랑 마지막 부분만 보이네요
다시 말해서 블럭이 옮겨지는 것이 보여야 되는데 처음 쌓여진 부분이랑 마지막 다 쌓인 부분만..ㅜㅜ
검색해보니깐 validate()..repaint()..updateUI() 여러가지 있던데..
아무리해도 되질 않네요..
어디서 문제가 생기는지 모르겠네요..
소스파일은 첨부하였습니다..
그래픽 부분이 바뀔때마다 계속 보여져야되는데 말이죠..
이부분에 대해서 조언 부탁드립니다...
아무래도 제가 뭔가 크게 잘못 이해하고 있는듯 하네요..
...첨부파일 이름 소문자로 올라가네요..
HanoiTower.java 입니다
-
피라
주말이라 제가 늦게 봤네요..아 설명 너무 감사합니다^^뭔가 잘못 이해 하고 있었네요..답변 정말 감사합니다
스레드로 만들어서 다시 해봐야겠습니다..왠지 힘이 솟는데요..ㅎㅎ
정말 감사합니다..해보고 다시 글 올리겠습니다^^감사합니다!!!!!! -
외국녀
더블버퍼링..더블버퍼링......
-
총알탄
강제로 paint를 호출하면, 잘못 그려질 수 있습니다.
그러므로 안 하는게 맞습니다. ^^ -
노아
강제로 페인트 호출하는 방법도 있는데..좀 무식하죠--;;
-
미즈
그래서 시간이 오래 걸리는 일을 할때에는, start button을 click를 잡아 낸 곳(actionPerformed)에서
바로 처리 하는게 아니라, 오랫동안 걸리는 일을 처리할 Thread를 하나 만들고,
그곳에서 일을 처리하면서, 어느정도 처리가 되었다면 화면을 업데이트 하라고 시키면 됩니다.
1. actionPerformed 메소드에서
2. 하노이의 탑을 옮길 Thread를 만들고 start해 준다.
3. 하노이의 탑을 하나 옮길때마다, 옮겼 -
초롱꽃
저렇게 그림을 그리고 작업을 하는것은 \버튼\을 눌렀을때 Listener로 등록을 해서, 통지를 받을 수 있지만, 그렇다고해서 통지 받은 곳에서 시간이 오래 걸리는 작업을 하면,
Event Dispatch Thread 위에서 동작하는것이므로, 화면을 그리는 어떠한 작업도 멈추게 됩니다.
하노이의 탑을 10개 만들어서, start 한 뒤에 창을 리사이즈 해 보시거나 잡고 움직이시면, 전혀 안 움직일겁니다. 지금 마우스 이벤트, 키보드 이벤트, 화면 그리 -
들꿈
다음과 같은 문제가 있습니다.
1. 자바에서 화면에 그림을 그리거나 버튼클릭시에는 항상 Event Dispatch Thread라는 곳에서 수행됩니다.
2. Start버튼을 누르면 Event Dispatch Thread에서 Start버튼을 눌렀을때의 일을 합니다.
3. repaint는, 너 조금 있다가 Event Dispatch Thread에서 그림 좀 새로 함 그려봐~ 라고 시키는것입니다.
( 지금 당장이 아니라, 지금 Event Dispatch T