Salve a tutti!
Sto da poco apprendendo il linguaggio Java e mi sto scontrando con un problema
Dopo lunghi tentativi sono finalmente riuscito a generare e far apparire un popup menu cliccando su una label ma... il menu non appare nel punto in cui clicco col mouse.
Vi spiego con maggiore dettaglio:
Eseguo il programmino java che mi pare una finestra nella quale è presente la label, se clicco sulla label appare il popup in una posizione leggermente sfalsata dal punto di click, se poi muovo la finestra da un'altra parte sullo schermo e provo a cliccare sulla label, il menu appare però posiziobato rispetto a dove si trovava originariamente la finestra... a cosa può essere dovuto??

preciso che uso awt e non swing e la versione di java è la 5

ecco qui sotto il codice

import java.awt.*;
import java.awt.event.*;

public class testMouse2 extends Frame{
private static final long serialVersionUID = 1L;


Label lbl = new Label("CLICCA QUI");
MyPopup pmn = new MyPopup("Prova Popup");
ML ml = new ML(pmn);
public testMouse2() {
setBackground(Color.WHITE);
setLocation(200,200);
lbl.setBackground(Color.YELLOW);
lbl.add(pmn);
add(lbl, BorderLayout.NORTH);
lbl.addMouseListener(ml);

pack();
setVisible(true);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new testMouse2();
}
}

class ML implements MouseListener {

MyPopup pnm;

public ML(MyPopup p) {
pnm = p;
}

public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }

public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
if (e.isPopupTrigger()){
pnm.show(e.getComponent(), e.getX(), e.getY());
}

}

public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
if (e.isPopupTrigger()) {
pnm.show(e.getComponent(), e.getX(), e.getY());
}
}

}

class MyPopup extends PopupMenu {

public MyPopup (String s) {
setLabel(s);
add(new MenuItem("Apri"));
add(new MenuItem("Salva"));
addSeparator();
MenuItem iq = new MenuItem("Chiudi");
add(iq);
class Quit implements ActionListener {

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}

}
iq.addActionListener(new Quit());
}
}