【问题标题】:Passing mouse and keyboard events to children of JSplitPane将鼠标和键盘事件传递给 JSplitPane 的子级
【发布时间】:2015-08-26 22:00:56
【问题描述】:

我有一个可以处理所有鼠标和键盘事件的 JPanel 扩展类。我将该面板与另一个 JPanel 一起放入 JSplitPane 中。现在,在我原来的 JPanel 中,我的鼠标和键盘事件都没有触发。

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

【问题讨论】:

  • 我认为你的理论不太正确。例如,如果您使用KeyListener,它只会在它附加到的组件具有键盘焦点并且可聚焦时注册键事件。 MouseListener 只会在鼠标事件有明确的轨迹时才会对鼠标事件做出反应,也就是说,如果您的面板顶部有组件注册为MouseListeners,它们将阻止您的组件接收鼠标事件。但是由于您完全没有提供任何代码来演示您在做什么,这都是猜测工作
  • 同意 MadProgrammer。面板可能只是没有焦点,但如果没有相关代码,很难准确判断。
  • 您如何为该面板提供焦点?我多次点击它,点击标签等,但似乎无法让该面板获得焦点。

标签: java swing mouselistener jsplitpane


【解决方案1】:

根据我的研究,我发现鼠标事件是由第一个可能的 MouseListener(在本例中为 JSplitPane)处理的,所以我所要做的就是......

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

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多