-1
我有一個帶有字符串的JList,它佔據了JFrame的整個區域。問題是,當用戶右鍵單擊時,它不必在JFrame中的項目上。只要選擇了一個項目,它就會彈出。所以你可以點擊任何地方,然後右鍵點擊任何地方,菜單會彈出。我該怎麼做才能讓用戶右鍵單擊JList中的某個項目時彈出菜單?這是我到目前爲止有:如何在用戶右鍵單擊JList中的項目時彈出菜單?
list.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if (SwingUtilities.isRightMouseButton(e))
{
JList list = (JList) e.getSource();
int row = list.locationToIndex(e.getPoint());
list.setSelectedIndex(row);
if(list.getSelectedIndex() != -1)
{
PopUpMenu menu = new PopUpMenu();
menu.show(e.getComponent(), e.getX(), e.getY());
}
}
}
});
代碼看起來很合理,除非在使用Swing時應該使用aJPopupMenu。不知道我明白這個問題。發佈適當的[mcve]證明問題。 – camickr
如果'JList'佔據整個屏幕,則單擊列表上的任何位置將生成鼠標事件。 – MadProgrammer