JavaFX EventHandler传递参数 [英] JavaFX EventHandler pass parameter
本文介绍了JavaFX EventHandler传递参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Rectangle rect1 = new Rectangle(10, 10, 20, 20);
Rectangle rect2 = new Rectangle(60, 10, 20, 20);
EventHandler<MouseEvent> event = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent ae) {
System.out.println("aaa");
}
};
rect1.setOnMouseClicked(event);
rect2.setOnMouseClicked(event);
如何点击rect1打印aaa,点击rect2打印bbb?
How to click rect1 print aaa, click rect2 print bbb ?
在我的真实程序中,我有数百个矩形,在这种情况下,我有很多事情要做。所以我不想为每一个声明事件。
In my real program, I have hundreds of rectangles, and in the event, I have many things to do. So I don't want declare event for every one.
谢谢!
推荐答案
像这样:
Rectangle rect1 = new Rectangle(10, 10, 20, 20);
rect1.setUserData( "aaa" );
Rectangle rect2 = new Rectangle(60, 10, 20, 20);
rect2.setUserData( "bbb" );
EventHandler<MouseEvent> event = new EventHandler<MouseEvent>()
{
@Override
public void handle( final MouseEvent ME )
{
Object obj = ME.getSource(); // you can also try ME.getTarget()
if ( obj instanceof Rectangle )
{
System.out.println( ((Rectangle) obj).getUserData() );
}
}
};
rect1.setOnMouseClicked(event);
rect2.setOnMouseClicked(event);
这篇关于JavaFX EventHandler传递参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文