Java 以编程方式调用单击JLabel

Java 以编程方式调用单击JLabel,java,swing,mouseevent,jlabel,Java,Swing,Mouseevent,Jlabel,我要在我的JLabel上监听鼠标点击事件,如: private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) { ... } 是否有可能以某种方式以编程方式调用它 不,我不想使用带有doClick():)按钮的机器人可以在任何地方单击,所以是的,这是可能的。 检查鼠标移动(…),鼠标按下(…)和鼠标释放(…) 您需要首先获取JLabel的屏幕坐标,但这可以通过其getLocationOnScreen()及其getSize(

我要在我的
JLabel
上监听鼠标点击事件,如:

private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) { 

...

}
是否有可能以某种方式以编程方式调用它


不,我不想使用带有
doClick()
:)

按钮的机器人可以在任何地方单击,所以是的,这是可能的。 检查鼠标移动(…),
鼠标按下(…)
鼠标释放(…)

您需要首先获取JLabel的屏幕坐标,但这可以通过其
getLocationOnScreen()
及其
getSize()方法轻松完成


我很好奇你这么做的动机。

机器人可以在任何地方点击,所以是的,这是可能的。 检查鼠标移动(…)
鼠标按下(…)
鼠标释放(…)

您需要首先获取JLabel的屏幕坐标,但这可以通过其
getLocationOnScreen()
及其
getSize()方法轻松完成


我很好奇你这样做的动机。

如果你不需要
MouseEvent
对象的任何属性,那么你可以用
null
值调用它。但是,我建议,如果您有需要执行的代码,而不考虑按钮的单击,请使用相应的参数创建一个方法,从单击处理程序调用该方法,然后从需要调用该方法的其他位置调用该方法

private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) { 
    this.Method(evt.getX(), evt.getY());
}

private void Method(int x, int y) {
  /// bla
}

如果您不需要
MouseEvent
对象中的任何属性,那么可以使用
null
值调用它。但是,我建议,如果您有需要执行的代码,而不考虑按钮的单击,请使用相应的参数创建一个方法,从单击处理程序调用该方法,然后从需要调用该方法的其他位置调用该方法

private void jLabel4MouseClicked(java.awt.event.MouseEvent evt) { 
    this.Method(evt.getX(), evt.getY());
}

private void Method(int x, int y) {
  /// bla
}

我可能错了,但我认为这个解决方案太复杂了——我认为提问者只是问如何直接调用这个方法——胡安的答案是完美的。这是一个很好的答案,但还有一个问题。@BillK:你可能是对的,但如果没有原始海报的进一步背景和上下文,我认为现在说还为时过早。我同意胡安的答案很好(尽管我会创建一个MouseEvent对象,并且不会以null形式通过),我对它投了赞成票。我只是对你的投了反对票,因为我不想让它引起胡安的注意(当时排名高于他的)——如果我错了,它会恢复:),一般来说,我讨厌否决票。@BillK:我也这么认为。在这一点上,投票对我来说真的不重要。+1基于真正的技能,可能有无尽的好奇心,顺便说一句,我的图伊可能是错的,但我认为这个解决方案太复杂了——我认为提问者只是问如何直接调用该方法——胡安的答案是完美的。这是一个很好的答案,但还有一个问题。@BillK:你可能是对的,但如果没有原始海报的进一步背景和上下文,我认为现在说还为时过早。我同意胡安的答案很好(尽管我会创建一个MouseEvent对象,并且不会以null形式通过),我对它投了赞成票。我只是对你的投了反对票,因为我不想让它引起胡安的注意(当时排名高于他的)——如果我错了,它会恢复:),一般来说,我讨厌否决票。@BillK:我也这么认为。在这一点上,投票对我来说真的不重要。+1基于真正的技能和可能的无尽好奇心,顺便说一句,我的Toots JButtons doClick()与调用它有关,请确保放置在未装饰的JButtons/JToggleButton with doClick()上的图标比一些黑客的Firemouseclick好(对MouseAdapter实现的自定义方法)@mKorbel:也许这应该是一个答案。@满是鳗鱼的气垫船也许不是,取决于实际的OPs要求,也许JLabel是JComponents的contianer,在这个时刻/状态下,我的观点和你的一样,什么是JButtons doClick()要调用它,请确保使用doClick()将图标放在未修饰的JButtons/JToggleButton上比一些hacky fireMouseClicked(在MouseAdapter中实现的自定义方法)更好@mKorbel:也许这应该是一个答案。@满是鳗鱼的气垫船也许不是,这取决于实际的行动需求,也许JLabel与JComponents有联系,在这个时刻/状态下,我的观点和你的一样,