-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