最好将各种形状定义为对象。例如,定义一个圆的类。包括原点(x,y),和半径(r).
由这些可将它画在Panel上。再为该Panel加上鼠标监听事件。在MousePress时就会产生一个事件e。用e.getx()和e.gety()就可得到鼠标点下去的位置。判断一下该点到原点的距离是否小于r。如是,证明你选中了该圆。而接着MouseDrag时也会产生事件e。你同样可得到一个点e.getX(),e.getY().这时你将圆的对象中的原点的值换成这个点的值。在把圆重画一遍就可以了。
由这些可将它画在Panel上。再为该Panel加上鼠标监听事件。在MousePress时就会产生一个事件e。用e.getx()和e.gety()就可得到鼠标点下去的位置。判断一下该点到原点的距离是否小于r。如是,证明你选中了该圆。而接着MouseDrag时也会产生事件e。你同样可得到一个点e.getX(),e.getY().这时你将圆的对象中的原点的值换成这个点的值。在把圆重画一遍就可以了。
将其copy 到剪贴板或者什么Picture 类型的对象上,然后粘贴到 你需要的位置,
应该是最省事和有效的。
但愿能给你一点帮助!!
你好,
谢谢你的提示,我也想过你说的方法,但是有一个问题,如果我在一个图形里面,比如说在圆里面还有一个小的圆,如果按照那个方法的话,我就不能move单个圆了,如果move的话就只能2个圆一起move. 不知道我认为的问题是不是问题 ?还有,我怎么给分阿 :)
我是从香港来的, 请多指教
不过, 我不太看得憧你们的语法, 但是我会尽量去学的, 谢谢 !!
Please leave me your email address
Circle b;
Vector cricles;
circles.add(a);
cricles.add(b);for(Enumeration enum = circles.elements;enum.hasMoreElements;){
Circle c =(Circle)enum.nextElement;
//做一下c时候被选中的判断;
if(选中){
return c;
}
}
//这样的话,找到第一个圆就返回了。所以不用担心再去找所有的圆。
so, here is my email address, and thank you in [email protected]
so, here is my email address, and thank you in advance
[email protected]