int x, y; // 원의 좌표
int xDirection=5, yDirection=5; // 원이 움직이는 방향 보폭
Timer t; // 애니메이션을 위한 시계
int DELAY = 20; // 타이머 액션 발생 빈도/시간
JFrame frame; // 화면
MyDrawPanel drawPanel; // 공이 그려지는 패널
int wid=40,hei=40; //공 넓이
private class TimerListener implements ActionListener {
public void actionPerformed (ActionEvent event) {
if ((xDirection > 0 && x >= drawPanel.getWidth() -wid) ||
(xDirection < 0 && x <= 0)) {
xDirection *= -1;
}
x += xDirection;
// y 축의로의 움직임을 결정
if ((yDirection > 0 && y >= drawPanel.getHeight() -hei) ||
(yDirection < 0 && y <= 0)) {
yDirection *= -1;
}
y += yDirection;
drawPanel.repaint();
}
}
class SpeedListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if ((e.getSource()) == slowButton) {
if(DELAY >= 5)
DELAY *= 2;
t.setDelay(DELAY);
}
if (( e.getSource()) == fastButton) {
if(DELAY <= 80)
DELAY /= 2;
t.setDelay(DELAY);
}
}
}
```
안녕하십니까 자바를 공부하고 있는 대학생입니다!
다름이 아니라 타이머의 딜레이를 이용하여서 느리게 버튼을 누르면 느리게 하고 빠르게 버튼을 누르면 빠르게 하는데 너무 빠르지도 느리지도 않게 작성을 하고 있습니다. 그런데 이렇게 코드를 작성하면 빨라졌다가 느리게 버튼을 누르면 느려지지가 않아서 질문을 드려봅니다..!! 감사합니다!
댓글 입력