[英]JavaFX EventHandler pass parameter
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?
在我的真實節目中,我有數百個矩形,在這種情況下,我有很多事情要做。 所以我不想為每一個聲明事件。
謝謝!
像這樣:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.