Ho un programma java che apre un menu popup quando si fa clic con il tasto destro su un JPanel. Quando si fa clic su una qualsiasi delle voci del menu popup, voglio stampare la posizione del clic destro che ha attivato il menu popup nel terminale. Come faccio a fare questo? Come posso ottenere la posizione in cui è avvenuto il clic destro all'interno degli eventi di azione popup?ottenendo la posizione clic con il pulsante destro dal popmenu action event
Come cambia il codice se il menu popup si trova in un JComponent?
Ecco il programma.
import java.awt.EventQueue;
import java.awt.event.*;
import javax.swing.*;
public class MenuTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
MenuFrame frame = new MenuFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
class MenuFrame extends JFrame
{
public MenuFrame()
{
setTitle("MenuTest");
setSize(300, 200);
Action cutAction = new TestAction("Cut");
Action copyAction = new TestAction("Copy");
Action pasteAction = new TestAction("Paste");
JPopupMenu popup = new JPopupMenu();
popup.add(cutAction);
popup.add(copyAction);
popup.add(pasteAction);
JPanel panel = new JPanel();
panel.setComponentPopupMenu(popup);
add(panel);
panel.addMouseListener(new MouseAdapter() {});
}
class TestAction extends AbstractAction
{
public TestAction(String name)
{
super(name);
}
public void actionPerformed(ActionEvent event)
{
System.out.println("Right click happened at ?"); // How do I get right click location?
}
}
}
Grazie Garrett. – user1868856