JPanel에서 마우스 오른쪽 버튼을 클릭했을 때 팝업 메뉴가 열리는 Java 프로그램이 있습니다. 팝업 메뉴 항목 중 하나를 클릭하면, 터미널의 팝업 메뉴를 트리거 한 오른쪽 클릭의 위치를 인쇄하고 싶습니다. 어떻게해야합니까? 팝업 액션 이벤트 내에서 마우스 오른쪽 버튼 클릭이 발생한 위치를 어떻게 알 수 있습니까?popmenu 액션 이벤트에서 오른쪽 클릭 위치 얻기
팝업 메뉴가 JComponent에있을 경우 코드가 어떻게 변경됩니까?
다음은 프로그램입니다.
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?
}
}
}
개럿 감사합니다. – user1868856