在Java mouseListener中,其中一种方法是mouseEntered()
。
根据API
说:
鼠标进入组件时调用。
所以我的问题是: API指的是哪个组件?它是添加mouseListener的组件吗?
示例:
JLabel labelA = new JLabel();
JLabel labelB = new JLabel();
labelA.addMouseListener(new LabelMouseListener());
//Codes for LabelMouseListener class not shown
因此,只有当我将鼠标光标移动到labelA
区域时,上述情况下的mouseEntered才有效。我是对的吗?
我的第二个问题:如果我有一个JComponent哪个类实现了mouseListener,那么什么时候会在这个类中触发mouseEntered / Exited?
是否将鼠标光标移入/移出此JComponent?
示例:
class myDisplay extends JComponent implements mouseListener
{
}
答案 0 :(得分:5)
文档说明:
然后使用组件的addMouseListener方法 使用组件 注册从该类创建的侦听器对象。按下鼠标,释放单击(按下并释放)时会生成鼠标事件。当鼠标光标进入或离开组件时,也会生成鼠标事件。
我猜他们可以用最后一个语句的 组件 替换 组件 。无论哪种方式,测试它都会证实你的信念。
总结一下......
是的,它指的是添加侦听器的组件。
对于第二个问题,即使您实施MouseListener
,您仍需要将其添加到该组件中:
class MyClass extends JComponent implements MouseListener {
public MyClass() {
addMouseListener(this); //adds this instance's listener to this component
}
//override methods
}
是的,它只会在你的鼠标进入/退出这个组件时触发(只有当你记得添加监听器时;它不会因为它被实现而无法工作,你必须添加它)