4
    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 print aaa をクリックし、rect2 print bbb をクリックする方法は?

私の実際のプログラムでは、何百もの四角形があり、イベントでは、やるべきことがたくさんあります。そのため、すべてのイベントを宣言したくありません。

ありがとう!

4

1 に答える 1

5

そのようです:

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);     
于 2014-05-30T15:32:47.340 に答える