DragObjects

Retired DISLab
이동: 둘러보기, 찾기
import acm.program.*;
import acm.graphics.*;
import java.awt.*;
import java.awt.event.*;
 
public class DragObjects extends GraphicsProgram {
 
	public void init() {
		GRect rect = new GRect(100, 100, 150, 100);
		rect.setFilled(true);
		rect.setColor(Color.RED);
		add(rect);
 
		GOval oval = new GOval(300, 150, 100, 70);
		oval.setFilled(true);
		oval.setColor(Color.GREEN);
		add(oval);
 
		GStar star = new GStar(150, 250, 100);
		star.setFilled(true);
		star.setColor(Color.BLUE);
		add(star);
 
		addMouseListeners();
	}
 
	@Override
	public void mousePressed(MouseEvent e) {
		last = new GPoint(e.getPoint());
		gobj = getElementAt(last);
	}
 
	@Override
	public void mouseDragged(MouseEvent e) {
		if (gobj != null) {
			gobj.move(e.getX() - last.getX(), e.getY() - last.getY());
			last = new GPoint(e.getPoint());
		}
	}
 
	@Override
	public void mouseClicked(MouseEvent e) {
		if (gobj != null) {
			switch (e.getButton()) {
			case MouseEvent.BUTTON1 :
					gobj.sendToFront();
					break;
			case MouseEvent.BUTTON2 :
					gobj.sendBackward();
					break;
			case MouseEvent.BUTTON3 :
					gobj.sendForward();
					break;
			}
		}
	}
 
	private GObject gobj;
	private GPoint last;
 
	private static final long serialVersionUID = 1;
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기