1 回答

TA貢獻(xiàn)1851條經(jīng)驗 獲得超5個贊
JPopupMenu 的子組件正在攔截鼠標(biāo)事件。您需要向菜單及其子菜單添加一個偵聽器。
您可以使用SwingUtilities.convertMouseEvent轉(zhuǎn)換 MouseEvent 的坐標(biāo),使其相對于另一個組件(例如 JFrame):
MouseMotionListener listener = new MouseMotionAdapter() {
? ? @Override
? ? public void mouseMoved(MouseEvent me) {
? ? ? ? me = SwingUtilities.convertMouseEvent(
? ? ? ? ? ? me.getComponent(), me, frame);
? ? ? ? System.out.println("Mouse Move");
? ? ? ? xyMouseLabel.x = me.getX();
? ? ? ? xyMouseLabel.y = me.getY();
? ? ? ? xyMouseLabel.repaint();
? ? }
};
menu.addMouseMotionListener(listener);
for (Component child : menu.getComponents()) {
? ? child.addMouseMotionListener(listener);
}
添加回答
舉報