ユーザーが 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 を使用しているため、何か特別なことが起こっていますか?