我扩展了一个JList以提供两个独立的功能,即项目的toolTipText和右键单击选项.两者都分开工作,但是当我尝试一起使用它们时,MouseMoved事件无法识别?以下是我的新听众方法的内容.我应该如何谈判这些不同的事件?
public class JListTT extends javax.swing.JList {
public JListTT() {
super();
addMouseListener(new ttListener());
...
class ttListener extends MouseAdapter {
public void mouseMoved(MouseEvent e) {
String nodeID = bldItemNodeID();
theList.setToolTipText(nodeID);
}
public void mousePressed(MouseEvent ev) {check(ev); }
public void mouseReleased(MouseEvent ev) {check(ev); }
public void mouseClicked(MouseEvent ev) {check(ev); }
public void check(MouseEvent ev) {
if (ev.isPopupTrigger()) {
theList.setSelectedIndex(theList.locationToIndex(ev.getPoint()));
menu.show(theList, ev.getX(), ev.getY());
}
}
}
解决方法:
您将ttListener对象添加为MouseListener,但我没有看到您将ttListener对象添加为MouseMotionListener.例如:
ttListener myMouseadapter = new ttListener();
addMouseListener(myMouseadapter);
addMouseMotionListener(myMouseadapter);