マウス情報の取得
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
this_mouseReleased(e);
}
});
また、以下はマウスをドラッグしたとき呼び出されるメソッドを定義します。MouseEvent e より、マウスを押したり離したときのマウスの位置を取得できます。 this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
this_mouseDragged(e);
}
});
マウスをドラッグすると、this_mouseDragged(e); が連続的に呼び出されます。 void this_mousePressed(MouseEvent e) {
mpos=e.getPoint();
eventlabel.setText("mousePressed");
xlabel.setText(Integer.toString(mpos.x));
ylabel.setText(Integer.toString(mpos.y));
}
void this_mouseDragged(MouseEvent e) {
mpos=e.getPoint();
eventlabel.setText("mouseDragged");
xlabel.setText(Integer.toString(mpos.x));
ylabel.setText(Integer.toString(mpos.y));
}
Newbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
Newbutton_actionPerformed(e);
}
});
numSelected=-1;
for(int i=0;i<numPoint;i++){
if(dist(line[i],mpos)<5) {
numSelected=i;
break;
}
}
マウスをドラッグしたとき、this_mouseDragged()メソッドで、以下のような処理をします。 if(numSelected >= 0) {
line[numSelected].x=mpos.x;
line[numSelected].y=mpos.y;
}
このご後、repaint(); で、line[] を折れ線で表示すれば、ドラッグ操作と共に、折れ線が変形します。