当用户右键单击我的 JTable 时,我正在尝试显示 JPopUpMenu。在我扩展 JTable 的类中,我调用以下代码:
addMouseListener(new MouseAdapter()
{
@Override
public void mouseReleased(MouseEvent e)
{
rowClicked = rowAtPoint(e.getPoint());
colClicked = columnAtPoint(e.getPoint());
if (e.isPopupTrigger())
{
popUpMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseClicked(MouseEvent e)
{
rowClicked = rowAtPoint(e.getPoint());
colClicked = columnAtPoint(e.getPoint());
if(e.isPopupTrigger())
{
popUpMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
});
每当我用鼠标右键单击触控板或使用 ctrl + 右键单击时,if(e.isPopupTrigger())
永远不会评估为 true,并且永远不会显示菜单。我在那里有断点来验证。
我在网上做了一些研究,似乎这个解决方案应该有效。由于右键单击取决于平台,因此使用 isPopupTrigger() 应该是要走的路。
自从我使用 Mac 以来,有什么特别的事情吗?