右键单击和对象后如何JOptionPane()

时间:2012-03-17 19:59:26

标签: java mouseevent joptionpane right-click

我想创建一个鼠标事件,允许我右键单击选项卡,选择并删除它。如何在右键单击选项卡名称后启用JOptionPane()

我无法尝试自己,因为我不知道......

1 个答案:

答案 0 :(得分:0)

我想你在这里谈论JTabbedPane。我不知道如何检测选项卡上的右键单击,但至少我可以告诉您如何获得有关鼠标点击和标签更改的通知。

如果您使用的JTabbedPane中某处使用了右键,则会收到通知:

tabbedPane.addMouseListener(new MouseAdapter()
{
    @Override
    public void mouseClicked(MouseEvent e)
    {
        if (e.getButton() == MouseEvent.BUTTON3)
            JOptionPane.showMessageDialog(
                null, "Clicked with right mouse button somewhere on the tabbed pane");
    }
});

您也可以在用户按下或释放鼠标按钮后立即收到通知。请参阅API documentation for MouseListener

要通知标签更改,您可以使用:

tabbedPane.addChangeListener(new ChangeListener()
{
    @Override
    public void stateChanged(ChangeEvent e)
    {
        JOptionPane.showMessageDialog(null, "Tab changed");
    }
});

也许你可以以某种方式结合这一点。一个想法(虽然不是很漂亮)将是:

  1. 注册使用的按下鼠标右键
  2. 如果在释放鼠标按钮之前(或之后不久)发生stateChanged事件,请显示消息对话框。