【问题标题】:Java right-click menu on tab选项卡上的 Java 右键单击​​菜单
【发布时间】:2014-04-22 14:35:50
【问题描述】:

我一直在我的选项卡窗格上玩鼠标侦听器等,但似乎没有任何进展。当您右键单击一个选项卡时,尝试制作一个小菜单,这将为您提供关闭该选项卡的选项。有人可以指出我正确的方向吗

tabbedPane.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseClicked(MouseEvent e) 
        {
            if(SwingUtilities.isRightMouseButton(e))
            {
                System.out.print(tabbedPane.getSelectedIndex());
            }
        }
    });

【问题讨论】:

  • 你能提供一个MCVE 来证明这个问题吗?
  • 正如您在代码中看到的那样,我只是试图返回发生右键单击的值。只是测试它实际上注册了点击等,但它没有。
  • 好吧,如何继续由您决定。获得帮助的最佳方式是提供一个 MCVE,我们可以将其复制并粘贴到我们自己的 IDE 中进行测试。

标签: java swing right-click


【解决方案1】:
tabbedPane.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) 
    {
        if(SwingUtilities.isRightMouseButton(e))
        {
            JPopupMenu menu = new JPopupMenu();
            JMenuItem closer = new JMenuItem(new AbstractAction("Close") {
                @Override
                public void actionPerformed(ActionEvent e) {
                    tabbedPane.removeTabAt(tabbedPane.getSelectedIndex());
                }
            });
            menu.add(closer);
            menu.show(tabbedPane, e.getX(), e.getY());
        }
    }
});

最好将菜单安装在可以通过 tabbedPane.getTabComponentAt 访问的选项卡组件上。选项卡组件是为选项卡呈现文本标签的组件。如果您想在选项卡中添加一个 X 按钮,那就是您放置它的位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多