以编程方式调用单击JLabel

时间:2013-07-24 16:22:42

标签: java swing mouseevent jlabel

我有一个事件要在我的JLabel上监听鼠标点击:

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

...

}

是否有可能以某种方式以编程方式调用此方法?

不,我不想使用doClick()的按钮:)

2 个答案:

答案 0 :(得分:3)

如果您不需要MouseEvent对象中的任何属性,则可以使用null值调用它。我建议尽管如果你有代码需要执行而不管单击按钮,创建一个带有相应参数的方法,从单击处理程序调用该方法,然后从需要调用它的其他地方调用。

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

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

答案 1 :(得分:1)

机器人可以在任何地方点击,所以是的,这是可能的。 查看Robot API,特别是mouseMove(...)mousePress(...)mouseRelease(...)

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

我很好奇你的动机。