2016년 5월 17일 화요일

Java 5/17 - 9장 자바 GUI 기초, 10장 이벤트 처리

9장 자바 GUI 기초, AWT와 SWING

실습

https://github.com/jyheo/JavaExercise/blob/master/src/gui/Lake_GUI.java

1. Lake_GUI의 속성(필드) 중 width와 height를 제거한다.
MyObject의 속성(필드) 중 x와 y를 제거한다.

힌트: 그러면 x와 y, width, height 값은 어디에서 읽어 오는가?
JComponent의 getX()와 getY(), getWidth(), getHeight()를 사용한다.
JButton과 JFrame의 contentPane 모두 JComponent를 상속 한 것임

2. Lake_GUI의 속성(필드) 중 ArrayList<MyObject> objects를 제거한다.

힌트: JFrame의 contentPane에 속한 Component들을 어떻게 가져오는가?
JFrame의 getContentPane()이 리턴한 Container 객체의 getComponets()라는 메소드를 호출하면 JFrame의 contentPane에 속한 Component들의 배열을 가져올 수 있음.
즉,
getContentPane().getComponents()를 하면 Component 배열이 리턴됨. 이 배열을 사용!
단, 배열에 포함된 Component 중 MyObject 객체인 경우에만 new_move()를 부르도록 하시오.

3. MyFish의 경우 new_move()에서 x위치는 JFrame 경계에서 반대 방향으로 움직이도록 되어 있다. velocity_y 속성을 추가하여 y도 x와 동일하게 고쳐 보시오.

4. (추가 실습) MyFish에 velocity를 다르게 주는 방법을 만들고 속도가 다른 물고기를 두 마리 만들어 보시오.

10장 자바의 이벤트 처리