单击鼠标按钮时使用JavaFX,FXML和.setImage显示图像

时间:2016-08-01 20:20:08

标签: java imageview javafx-8 fxml

我在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);
            }
        }
    });
}

任何帮助都表示赞赏,并提前致谢。

安迪

0 个答案:

没有答案