我正在尝试从代码中单击按钮。我想要做以下事情:
class MyMouseAdapter extends MouseAdapter
{
public void mouseDown(MouseEvent evt)
{
System.out.println("Working!!!!");
}
}
Button button = new Button();
button.addMouseListener(new MyMouseAdapter());
现在我想从代码中运行mouseDown方法你能告诉我该怎么做吗?
谢谢。
答案 0 :(得分:14)
你可以这样做:
button.notifyListeners( SWT.MouseDown, null );
null
是Event
的位置。请记住,这是听众收到的Event
。
答案 1 :(得分:3)
如果您需要通知所有听众,那么您可以尝试以下代码,
yourbutton.notifyListeners(SWT.Selection, new Event());
答案 2 :(得分:1)
要通过鼠标按下按钮获得正确的行为,您需要使用MouseDown
模拟MouseUp
和Display.post(...)
- 没有其他方法可以获得正确的架构依赖行为。
您可以找到大量代码 - 包括Testing a Plug-in - User Interface Testing。
更新链接
答案 3 :(得分:0)
不确定它是否是您正在寻找的解决方案,但为什么不保留MyMouseAdapter实例的局部变量并直接在其上调用mouseDown方法? 类似下面的片段:
class MyMouseAdapter extends MouseAdapter
{
public void mouseDown(MouseEvent evt)
{
System.out.println("Working!!!!");
}
}
MyMouseAdapter adapter = new MyMouseAdapter();
Button button = new Button();
button.addMouseListener(adapter);
//Somehow create a new MouseEvent then call the following:
adapter.mouseDown(yourNewEvent);
答案 4 :(得分:0)
我的回答是基本上模拟鼠标点击事件。有很多例子,所以如果我的链接不起作用你做快速搜索。答案取决于您导入的库。
您可以使用java.awt.Robot来模拟按下以下链接的程序按钮。
http://www.java2s.com/Code/JavaAPI/java.awt/RobotmousePressintbuttons.htm
或者如果您使用SWT,您可以使用Display.post(事件e),如下所示: http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/UIAutomationfortestingtoolssnippetpostmouseevents.htm
这些路线中的任何一个都需要为click事件提供坐标,并且可能是对被点击对象的引用,因此需要所述对象找到控件(在本例中是您尝试单击的按钮),以便它可以点击。
如果您正在使用swing,请执行button.doClick()。