java - 使用 onMouseClicked 方法时如何获取 ImageView 的 ID?
问题描述
我无法使用 onMouseClicked 方法获取我的 imageViews 的 ID。在这个应用程序中,我有 20 个 ImageView,当我单击其中一个时,它应该将图像更改为我文件中的图像。到目前为止,我有这个 imagePicker 方法,我用 imgViewOne 测试了图像更改,这是第一个 ImageView 的 ID,这工作正常。
public void imagePicker() {
try {
File file = new File("/home/zoran/eclipse-workspace/Pogodi tko sam/bin/application/iks.png");
String localUrl = file.toURI().toURL().toString();
Image image = new Image(localUrl);
//imgViewOne.setImage(image);
} catch (MalformedURLException e) {
System.out.println("Malformed url ex");
e.printStackTrace();
}
}
我在这里找到了一些关于获取文本字段或其他元素的 ID 的答案,但它们都有可以调用的事件处理程序event.getID().
但是这里没有事件处理程序,所以我不知道如何获取 ID。我尝试将参数设置为 imagePicker,例如 imagePicker(ImageView v) 然后调用String id = v.getID();
,但我无法更改此属性的图像。如果有人知道解决方案,请与我分享。提前致谢!
编辑:每个 ImageView 都有 id imagePicker 的 onMouseCliked 方法。所以每次点击时,它都会转到这个方法。
<ImageView fx:id="trinaesta" onMouseClicked="#imagePicker" fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true" GridPane.rowIndex="3">
解决方案
您正在使用控制器方法事件处理程序,这意味着您的方法可以并且通常应该具有相应子类的单个参数Event
。在您的情况下,参数应该是 a MouseEvent
,因为您正在设置onMouseClicked
处理程序。然后,您可以获得相应的事件源ImageView
(处理程序已添加到ImageView
)。
public void imagePicker(MouseEvent event) {
event.consume();
try {
File file = new File("/home/zoran/eclipse-workspace/Pogodi tko sam/bin/application/iks.png");
String localUrl = file.toURI().toURL().toString();
Image image = new Image(localUrl);
((ImageView) event.getSource()).setImage(image); // set image on clicked ImageView
} catch (MalformedURLException e) {
System.out.println("Malformed url ex");
e.printStackTrace();
}
}
请注意,getSource
返回Object
,因此您必须转换为适当的类型。
推荐阅读
- ruby-on-rails - 用于私人视频的 Vimeo API
- python-2.7 - FIO通过子进程运行时生成空文件
- c# - 命名管道尝试将 msg C# 服务器发送到 C++ 客户端
- r - RStudio - 能够对多个目录中的文件进行字符串替换?
- sql - 新列上的数据类型不匹配
- sql - 使用空数据和重复数据的 SQL 连接
- c++ - 将元组和整数实例合并到引用元组中
- java - 如何使用字符串中的正则表达式验证两个单词之间的空格
- javascript - 正则表达式 NodeJS Javascript 不适用
- mysql - 我正在运行以下查询来创建触发器以在 phpmyadmin 中从 date_of_birth 检查年龄,但它不起作用