我在HBox中创建了一个ImageView,我想在双击ListView项目时设置图像。我已经设置了ImageView FXML(在FXML中明确设置图像URL工作正常,但我想通过在控制器类中对其进行软编码来导入/设置图像,因为图像可能会改变):
<HBox>
<ImageView fx:id="imageView" fitHeight="300" fitWidth="200">
</ImageView>
<ImageView fx:id="imageView1" fitHeight="300" fitWidth="200">
</ImageView>
</HBox>
这是Controller类。我使用了.setImage并传递了图像文件,但它似乎没有显示。 ImageView是否可观察并且一旦发生事件就会改变吗?我已经调试了它,并且有一个指向图像的指针,所以我相信它正在通过。
public class Controller {
private SortedList<ClickOption> sortedList;
@FXML
private ListView<ClickOption> optionsListView;
@FXML
private ImageView imageView;
public void initialize(){
sortedList = new SortedList<ClickOption>(ClickOptionData.getInstance().getClickOptionList());
optionsListView.setItems(sortedList);
}
@FXML
public void handleMouseClick(){
optionsListView.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
if (event.getClickCount() == 2) {
System.out.println("Mouse clicked twice");
Image image = new Image("file:testImage.png");
imageView.setImage(image);
}
}
});
}
任何帮助都表示赞赏,并提前致谢。
安迪