Java 将鼠标和键盘事件传递给JSplitPane的子级

Java 将鼠标和键盘事件传递给JSplitPane的子级,java,swing,mouselistener,jsplitpane,Java,Swing,Mouselistener,Jsplitpane,我有一个正在工作的JPanel扩展类,它处理所有鼠标和键盘事件。我把那个面板和另一个JPanel放进了一个JSplitPane。现在,在我最初的JPanel中,没有任何鼠标和键盘事件被触发 我的理论是JPSplitPane现在接收事件。有没有一种方法可以像以前一样轻松地将这些事件传递给我的JPanel?经过我的研究,我发现鼠标事件是由第一个可能的鼠标侦听器(在本例中是JSplitPane)处理的,所以我所要做的就是 splitPane = new JSplitPane(JSplitPane.HO

我有一个正在工作的JPanel扩展类,它处理所有鼠标和键盘事件。我把那个面板和另一个JPanel放进了一个JSplitPane。现在,在我最初的JPanel中,没有任何鼠标和键盘事件被触发


我的理论是JPSplitPane现在接收事件。有没有一种方法可以像以前一样轻松地将这些事件传递给我的JPanel?

经过我的研究,我发现鼠标事件是由第一个可能的鼠标侦听器(在本例中是JSplitPane)处理的,所以我所要做的就是

splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftColumn, analyzerPanel);
splitPane.addMouseListener(analyzerPanel);
splitPane.addMouseMotionListener(analyzerPanel);
splitPane.addMouseWheelListener(analyzerPanel);
splitPane.addKeyListener(analyzerPanel);

我认为你的理论不太正确。例如,如果您使用的是
KeyListener
,则仅当所连接的组件具有键盘焦点且可聚焦时,它才会注册按键事件
MouseListener
仅在鼠标事件有清晰轨迹的情况下才会对鼠标事件作出反应,也就是说,如果面板顶部的组件注册为侦听器
MouseListener
s,它们将阻止组件接收鼠标事件。但是,由于您完全没有提供任何代码来演示您正在做的事情,所以这是所有程序员都同意的。面板可能就是没有焦点,但是如果没有相关的代码就很难准确地说出来。你如何赋予面板焦点?我多次点击它,点击标签,等等,但似乎不能给面板的重点。