JavaFX-如何在对象类型上使用ImageView方法?

问题描述 投票:0回答:1

我正在尝试为鼠标拖动事件创建一个EventHandler。我将使用相同的处理程序对多个ImageView执行相同的操作。现在这就是我所做的。

static EventHandler<MouseEvent> dragHandler = new EventHandler<MouseEvent>()    {
        @Override
        public void handle(MouseEvent e) {
            e.getSource().toFront();
            e.getSource().setTranslateX(e.getSceneX() );
            e.getSource().setTranslateY(e.getSceneY() );

        }

        };  

但是显然我不能使用toFront或setTranslate方法或用于ImageViews的任何东西,因为e.getSource返回一个Object,而这些是ImageView方法,不适用于Object类型。而且显然我不能通过执行

将其简单地投射到ImageView中
   (ImageView)( e.getSource() ).toFront();

我可以简单地使用内部类和lambda表达式,但我认为必须有一种更有效的方法,而不是仅对每个ImageView复制粘贴相同的行(例如15次)。所以,请告诉我。

提前感谢。

javafx
1个回答
1
投票

强制转换有效,但强制转换的优先级低于解引用(.)的优先级,因此您的代码示例尝试将(e.getSource()).toFront()的结果向下转换,该结果无效(因为无类型,因为[ C0]是toFront()

所以

void
© www.soinside.com 2019 - 2024. All rights reserved.