相关疑难解决方法(0)

从popmenu动作事件中获取右键单击位置

我有一个java程序,在JPanel中右键单击时打开一个弹出菜单.单击任何弹出菜单项时,我想打印在终端中触发弹出菜单的右键单击位置.我该怎么做呢?如何在弹出操作事件中获取右键单击发生位置的位置?

如果弹出菜单位于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() …
Run Code Online (Sandbox Code Playgroud)

java swing jcomponent coordinates jpopupmenu

5
推荐指数
1
解决办法
3791
查看次数

JTable上的JPopupMenu - >获取创建菜单的单元格

我有一种情况,我在右键单击JTable时创建了一个弹出菜单.创建弹出菜单的标准方法:

aJTable.setComponentPopupMenu(rightClickMenu);
Run Code Online (Sandbox Code Playgroud)

之后在注册的操作中,我无法找到右键单击哪个单元格以显示该弹出菜单.

rightClickMenuItem.addActionListener(new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
        // Work out what cell was right clicked to generate the menu
    }

});
Run Code Online (Sandbox Code Playgroud)

关于你如何做到这一点的任何想法?

java swing jtable jpopupmenu

4
推荐指数
1
解决办法
3117
查看次数

标签 统计

java ×2

jpopupmenu ×2

swing ×2

coordinates ×1

jcomponent ×1

jtable ×1