我正在嘗試爲文件瀏覽器製作一組導航按鈕。我想要它,這樣如果用戶點擊專用的歷史記錄按鈕,就會出現一個JPopupMenu。但是,我還希望在用戶右鍵單擊或拖動光標後退或前進按鈕時顯示完全相同的菜單。 如何爲不同手勢的多個GUI組件顯示完全相同的JPopupMenu(不是副本,但確切的一個副本)?如何在單擊,右鍵單擊或拖動3個JButton中的任何一個時出現JPopupMenu?
到目前爲止,我已經試過如下:
histButton.addMouseListener(new MouseAdapter()
{
@Override public void mouseClicked(MouseEvent e)
{
showPopup(e);
}
@Override public void mouseDragged(MouseEvent e)
{
showPopup(e);
}
private void showPopup(MouseEvent e)
{
histPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
});
forwardButton.addMouseListener(new MouseAdapter()
{
@Override public void mouseClicked(MouseEvent e)
{
if (e.isPopupTrigger())
showPopup(e);
}
@Override public void mouseDragged(MouseEvent e)
{
showPopup(e);
}
private void showPopup(MouseEvent e)
{
histPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
});
backButton.addMouseListener(new MouseAdapter()
{
@Override public void mouseClicked(MouseEvent e)
{
if (e.isPopupTrigger())
showPopup(e);
}
@Override public void mouseDragged(MouseEvent e)
{
showPopup(e);
}
private void showPopup(MouseEvent e)
{
histPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
});
所有組件都添加並正確顯示和調試表明我說,他們註冊的事件,但沒有出現菜單。
[你嘗試過什麼?](http://www.whathaveyoutried.com/) –
我已經固定我的問題 – Supuhstar
好,但更好的幫助越早,張貼[SSCCE(HTTP:/ /sscce.org/)。 –