有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案