07/06/02 12:41:24
>>183
これでいいんじゃね?
ptLineDistを使おうとしてるのが間違い
どうせ線分の延長線上をクリックした時も反応して困ったとかいうオチじゃないか?
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class Hoge extends MouseAdapter {
private static Line2D line = new Line2D.Double(10, 20, 140, 120);
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new JComponent(){public void paintComponent(Graphics g){((Graphics2D)g).draw(line);}}).addMouseListener(new Hoge());
f.setSize(240, 200);
f.setVisible(true);
}
public void mouseClicked(MouseEvent e) {
int x = e.getX(), y = e.getY();
if (line.ptSegDist(x, y) <= 10) System.out.println("(" + x + ", " + y + ") " + line.ptSegDist(x, y));
}
}