親に関連するコンポーネントの座標を取得しようとしています。たとえば、サイズ500x500のJFrameがあり、その子JPanelが[ 50, 10]にある場合、結果として[50, 10]を取得する必要があります。簡単に思えるかもしれませんが、間違った座標 ( [0, 0]または[3, 24] ) を取得し続けています。
これが私のJPanelのコードです:
class MyPanel extends JPanel implements MouseListener {
private Component parent;
private String strName;
public MyPanel(Component pr, String name, int w, int h) {
super();
parent = pr;
strName = new String(name);
this.setLayout(null);
this.setSize(w, h);
this.setBackground(Color.WHITE);
this.addMouseListener(this);
this.setVisible(true);
}
/* MouseListener implementation */
public void mouseClicked(MouseEvent event) {
int x = event.getX(); int y = event.getY();
Point pnt = new Point(SwingUtilities.convertPoint(this, new Point(0, 0), parent));
System.out.println(strName + ":" + pnt);
}
public void mouseEntered(MouseEvent event) { }
public void mouseExited(MouseEvent event) { }
public void mousePressed(MouseEvent event) { }
public void mouseReleased(MouseEvent event) { }
}
何か案は?