在JavaFX中显示最后单击的元素

时间:2016-04-30 14:08:38

标签: java javafx-8

我的BorderPane有很多不同的图形,三角形,六边形,圆形,带图像的组和图形。然后我有一个对话框,要求先点击一个三角形然后再点击一个圆圈。在BorderPane中获取最后两个单击元素的最佳方法是什么?

我知道我可以将MouseEvent用于单个对象以查看它是否被点击,如下所示:

hexagon.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent mouseEvent) {
            System.out.println("hexagon clicked");
        }
});

1 个答案:

答案 0 :(得分:0)

您可以为BorderPane(假设root)和每个元素设置ID(假设为Rectangle rectangle1rectangle2)。然后可以检查它的元素是否被按下。以下是示例代码:

    root.setOnMousePressed(new EventHandler<MouseEvent>()
    {
        @Override
        public void handle(MouseEvent mouseEvent)
        {
            if (hexagon.isPressed())
                System.out.println("hexagon");
            else if (rectangle1.isPressed())
                System.out.println("rectangle1");
            else if (rectangle2.isPressed())
                System.out.println("rectangle2");
            else if (imageView1.isPressed())
                System.out.println("imageView1");
            else if (imageView2.isPressed())
                System.out.println("imageView2");
            else
                System.out.println("Others");

        }
    });