java如何知道MouseWheelListener是否可以接收事件?
有一个JPanel
附加了MouseWheelListener
。这个面板在其他几个JPanel的顶部,完全占据了父JPanel
区域。我想知道MouseWheelListener
鼠标在这个父JPanel
上时是否可以接收事件。如果我将MouseListener
附加到父JPanel
-它不会接收任何事件,因为在它上面还有其他几个JPanel
也许有什么方法可以确定MouseWheelListener
何时可以接收事件?我的意思是,如果你站在JScrollPane
上,只有这样你才能移动滚动条(它上面有多少个JPanel并不重要)
编辑:
AWTEventListener
也没有帮助-上层JPanel仍然阻止父JPanel事件..:
AWTEventListener awt = new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent e) {
if (MouseEvent.MOUSE_ENTERED == e.getID()) {
MouseEvent event = (MouseEvent) e;
for (Component c : getComponents()) {//get all parent JPanel components
if (event.getComponent().equals(c)) {
active = true;
scrollBar.repaint();
break;
}
}
} else if (MouseEvent.MOUSE_EXITED == e.getID()) {
MouseEvent event = (MouseEvent) e;
for (Component c : getComponents()) {
if (event.getComponent().equals(c)) {
active = false;
scrollBar.repaint();
break;
}
}
}
}
};
Toolkit.getDefaultToolkit().addAWTEventListener(awt, AWTEvent.MOUSE_EVENT_MASK);
也许这是不可能实现的
共 (0) 个答案