728x90
반응형
package Ex01;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Point{
int x, y;
}
class MyPanel5 extends JPanel implements MouseMotionListener{
private int index = 0;
Point[] array = new Point[1000];
public MyPanel5() {
this.addMouseMotionListener(this);
}
@Override
public void mouseDragged(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(index > 1000) return;
array[index] = new Point();
array[index].x = e.getX();
array[index].y = e.getY();
index++;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for(Point p : array) { //자바 1.5부터 도입된 향상 된 for문
if(p !=null)
g.drawRect(p.x, p.y, 1, 1);
}
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public class PaintEx extends JFrame{
public PaintEx() {
setSize(300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(new MyPanel5());
setVisible(true);
}
public static void main(String[] args) {
new PaintEx();
}
}
빠르게 드래그를 하면 끊기는 것처럼 그려진다
repaint를 할 때마다 딜레이가 존재하기 때문.
728x90
반응형
'JAVA > 예제' 카테고리의 다른 글
[JAVA] 자판기 (0) | 2022.10.28 |
---|---|
[JAVA] 숫자 순서대로 클릭하기 게임 (0) | 2022.10.28 |
[JAVA] Graphics 웃는 얼굴 (0) | 2022.10.28 |
[JAVA] 신호등 (0) | 2022.10.28 |
[JAVA] addActionListener 카운터증가 (0) | 2022.10.28 |
댓글