[問題] GeneralPath.contains() doesn't work?
下面這個method小弟是放在一個叫CavasDemo class的constructor裡
而CavasDemo 是extends JPannel的..
問題在於我畫好的Path..無法利用GeneralPath.contains抓到滑鼠click在path裡的點..
下面是小弟的部分程式碼,請前輩們幫忙..謝謝..
public void mousePressed(MouseEvent e){
p = e.getPoint();
GeneralPath path = new GeneralPath();
//這裡的程式只是為了從我的障礙物中讀出polygon的座標,
//並用GeneralPath把這些點連成polygon的軌跡.
for(int i = 0;i < f.obstacles.length; i++){
polygon = f.obstacles[i].getPolygon();
Iterator it = polygon.iterator();
while(it.hasNext()){
vertexs =(Point2D[])it.next();
path.moveTo((float)(vertexs[0].getX()* scaleX),
(float)(vertexs[0].getY() *scaleY));
for(int j = 1; j < vertexs.length; j++){
path.lineTo((float)(vertexs[j].getX()* scaleX),
(float)(vertexs[j].getY() *scaleY));
}
path.closePath();
//上面的path是確實可以產生出來的,因為這段程式我同樣放在paintComponet()是可以用
Graph2D.draw()畫出來的
//問題是下面這行程式,畫好的path始終抓不到p(滑鼠點在JPannel上的點)
if(path.contains(p){
System.out.println("done");
}
}
path.reset();
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.200.90
java 近期熱門文章
PTT數位生活區 即時熱門文章