鼠标按下,画出图形的主要部分
来源:互联网 发布:dmg mac u盘 知乎 编辑:程序博客网 时间:2024/06/08 06:20
class MouseComponent extends JComponent {
public MouseComponent() {
squares = new ArrayList<Rectangle2D>();
current = null;
this.addMouseListener(new MouseHandler());
this.addMouseMotionListener(new MouseMotionHandler());
}
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
for(Rectangle2D r : squares) {
g2.draw(r);
}
}
/**
* 点击的这个点,是否在某个图形内
* @param p 点击的点
* @return 在图形内,返回这个图形。不在图形内,返回null。
*/
public Rectangle2D find(Point2D p) {
for(Rectangle2D r : squares) {
if(r.contains(p)) {
return r;
}
}
return null;
}
/**
* 将这个点的图形添加到list中,并重新绘制图形
* @param p 要添加的点
*/
public void add(Point2D p) {
double x = p.getX();
double y = p.getY();
current = new Rectangle2D.Double(x - SIDELENGTH / 2, y - SIDELENGTH / 2, SIDELENGTH, SIDELENGTH);
squares.add(current);
repaint();
}
/**
* 从list中移除图形
* @param s 要移除的图形
*/
public void remove(Rectangle2D s) {
if(s == null) {
return;
}
//将当前的置为null
if(s == current) {
current = null;
}
squares.remove(s);
repaint();
}
private static final int SIDELENGTH = 10;
private Rectangle2D current;
private ArrayList<Rectangle2D> squares;
}
- 鼠标按下,画出图形的主要部分
- 鼠标按下,画出图形的两个内部类
- 画出特定的图形
- css画出的各种图形
- 鼠标画出来的汽车
- 打印panel上画出来的图形
- 如何用AS画出简单的图形
- View 用 Paint 画出的图形
- /LGC图形渲染/访问 Linux 下的鼠标设备
- fillStroke画出多彩图形
- iOS 画出不规则图形
- 纯css画出的图形——html5
- html5中的画布canvas---画出弧线、旋转的图形
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- Canvas在页面画出各种图形的方法
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- 屏幕布局动态划分的另类思考----抽象屏幕类
- objective C中的字符串(三)
- 区分网桥与Internet连接共享
- VS2008 快捷键大全[转帖]
- chubby 分析(未完待续)
- 鼠标按下,画出图形的主要部分
- eclipse调优
- ubuntu10.10 安装sun-java6-jdk
- Jquery 上传图片预览
- Linux shell脚本全面学习(四)
- python3.2.2增加了一个新的并发库
- Linux shell脚本全面学习(五)
- 妈妈 为了弟弟不要与爸爸离婚好吗?
- java 反射机制