A我自己写的connection连线算法Connection————9
/**
* //拖动芯片方法
*/
public void repainChip(Point oldPoint, Point newPoint, ChipFont f) {
// 鼠标释放坐标
Point p = newPoint;
Point p1 = oldPoint;
Dimension delta = p.getDifference(oldPoint);
// last = p;
// 获得你鼠标释放的figur
// 判断芯片槽是否已经存放了芯片
for (int i = 1; i < 17; i++) {
if ((p.x > ((ChipTrough) map.get(i)).getXy().getX())
&& (p.x < ((ChipTrough) map.get(i)).getXy().getX() + 120)
&& (p.y > ((ChipTrough) map.get(i)).getXy().getY())
&& (p.y < ((ChipTrough) map.get(i)).getXy().getY() + 120)) {
if (((ChipTrough) map.get(i)).isSaveCome()) {
// 芯片
f.getChip().setBounds(
new Rectangle(((ChipTrough) map.get(i)).getXy()
.getX() + 14, ((ChipTrough) map.get(i))
.getXy().getY() + 12, 115, 115));
// 边框
f.getChip().getBd().setBounds(
new Rectangle(((ChipTrough) map.get(i)).getXy()
.getX(), ((ChipTrough) map.get(i))
.getXy().getY(), 135, 135));
// 拖动图形银角和图形一起动
f.getChip().getOutput().setBounds(
new Rectangle(((ChipTrough) map.get(i)).getXy()
.getX() + 8,
f.getChip().getBounds().y + 2, 20, 10));
f.getChip().getInput()
.setBounds(
new Rectangle(((ChipTrough) map.get(i))
.getXy().getX() + 8, f
.getChip().getBounds().y + 20,
20, 10));
// 名字
f.setBounds(new Rectangle(((ChipTrough) map.get(i))
.getXy().getX() + 20, ((ChipTrough) map.get(i))
.getXy().getY() + 15, 115, 115));
// 设置此芯片槽已经存放
((ChipTrough) map.get(i)).setSaveCome(false);
// 设置老芯片槽为false
for (int j = 1; j <= 16; j++) {
if ((((ChipTrough) map.get(j)).getXy().getX() == p1.x)
&& (((ChipTrough) map.get(j)).getXy()
.getY() == p1.y)) {
((ChipTrough) map.get(j)).setSaveCome(true);
}
}
break;
}