在做一个小东西,在两个组件中有多条直线连接,
我是直接在一个Jpanel中调用paint()方法实现的
例如:
public void paint(Graphics g) {
…………省略
g.drawLine(x1,y1,x1+15,y1);
g.drawLine(x1+15,y1,x2-20,y2);
g.drawLine(x2-20,y2,x2,y2);
}但是这样做,直线是画出来了,但是画出来的直线却是不能够被鼠标选中,不能够监听鼠标事件的,
因为Paint()方法画出来的直线不是一个组件,
要怎么解决这个问题呢???
急啊,搞了2天了,就卡在这儿了。
我是直接在一个Jpanel中调用paint()方法实现的
例如:
public void paint(Graphics g) {
…………省略
g.drawLine(x1,y1,x1+15,y1);
g.drawLine(x1+15,y1,x2-20,y2);
g.drawLine(x2-20,y2,x2,y2);
}但是这样做,直线是画出来了,但是画出来的直线却是不能够被鼠标选中,不能够监听鼠标事件的,
因为Paint()方法画出来的直线不是一个组件,
要怎么解决这个问题呢???
急啊,搞了2天了,就卡在这儿了。
二、public void paint(Graphics g) {
…………省略
g.drawLine(x1,y1,xx1,yy1);
g.drawLine(x2,y2,xx2,yy2);
g.drawLine(x3,y3,xx2,yy3);
//g.drawLine(x1,y1,x1+15,y1);
//g.drawLine(x1+15,y1,x2-20,y2);
//g.drawLine(x2-20,y2,x2,y2);
}
三、把那些线段的端点信息存储在JPanel字段中。如x1,y1, xx1, yy1, x2, y2, xx2, yy2等
四、监听JPanel子类的鼠标事件。
在鼠标监听事件中,如果鼠标位置于线路的距离小于某个数,就表示选中线段。