Buonasera a tutti. Sono alle prime armi con le interfacce grafiche di Java.
Oggi, cercando di implementare un menu a comparsa quando clicco con il mouse, ho miseramente fallito.
Sapete spiegarmi dove e perchè sbaglio? Grazie

codice:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

import javax.swing.*;
public class ActionCapiamoleDai{
    private JFrame f;
    private JLabel l;
    private JPopupMenu pm;
    
    public ActionCapiamoleDai() {
        f=new JFrame("Prova");
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.setLocation(250,200);
        Panel p1=new Panel();
        Panel p2=new Panel();
        p2.add(new Label("Name:"));
        p2.add(new TextField(20));
        p1.add(p2);        
        Panel p3= new Panel();
        p3.add(new Button("Cancel"));
        JButton b=new JButton("ok");
        p3.add(b);
        p1.add(p3);

        
        pm = new JPopupMenu("provaMenu");
        p1.add(pm);
        p1.addMouseListener(new MouseAdapter() { 
            public void mousePressed(MouseEvent me){ 
            showPopup(me); 
            } 
            public void mouseReleased(MouseEvent me){ 
            showPopup(me); 
            }});
        f.add(p1);
        
        f.setSize(320,120);
        f.setVisible(true);
        
    }
    
    
    void showPopup(MouseEvent me) { 
        if (me.isPopupTrigger())
        pm.show(me.getComponent(), me.getX(), me.getY()); 
        } 
    
    

    public static void main(String[] args){
        Runnable r=new Runnable(){
            public void run(){
                new ActionCapiamoleDai();
            }};
            EventQueue.invokeLater(r);}
    
}