无法从组件访问processMouseMotionEvent

时间:2014-07-17 00:49:39

标签: java swing mouseevent access-modifiers

我正在尝试在JFrame中的组件中模拟鼠标,我遇到了processMouseMotionEvent。据说我可以将MouseEvent传递给它,它将处理组件中的MouseEvent。我试过这个,但是我收到了一个错误:

processMouseMotionEvent(MouseEvent) has protected access in JComponent.

我认为这意味着我做错了,我不应该使用我的方法?这是我目前代码的一小部分。如果这不起作用,我还能如何在组件中处理模拟的MouseEvent?

JWebBrowser j = new JWebBrowser();
j.setBounds(0, 0, 1000, 1000);
j.processMouseMotionEvent(new MouseEvent(this, 0, 0, 0, 5, 5, 2, false)); //ERROR
panel.add(j);

1 个答案:

答案 0 :(得分:2)

错误意味着它所说的内容 - 您正在尝试通过外部类调用受保护的方法,在该类中无法访问,不可见。我不知道你想要做的是一个可行的计划,但无论如何,如果你需要访问一个继承的受保护方法,那么你应该考虑创建一个外部对象可以调用并调用你的公共包装器方法受保护的方法。

如,

// or whatever you're extending...
public class MyFoo extends JComponent {

   // the wrapper method *must* be public
   public void processMouseMotionEventWrapper(MouseEvent mEvt) {
      processMouseMotionEvent(mEvt);
   }
}

同样,我不能说你使用这种方法是否是一个好主意,因为我从未使用它。