TEL:400-8793-956
当前位置:程序、服务器

在JavaFX中将选定的图像文件设置为Imageview

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-02 12:47:22

 问:我尝试使用选定的FileChooser将图像文件设置为我的imageview。我尝试进行整理但出现错误。我在哪里错?

 
公共 类 控制器 { 
@FXML 
ImageView的 ImageView的; 
public  void  choiceFile (ActionEvent  actionEvent ){ 
FileChooser选择器=新FileChooser (); 选择器。setTitle (“打开文件” ); 文件file =选择器。showOpenDialog (new Stage ()); if (file != null ){字符串imagepath =文件        
           。getPath (); 
系统。出来。println (“ file:” + imagepath ); 图片image =新图片(imagepath ); imageView 。setImage (image ); }其他{警报警报=新警报(警报。警告类型。信息); 警惕。setTitle (“信息对话框” );警惕。        
 
        setHeaderText (“请选择一个文件” ); 
/*alert.setContentText(“您没有选择文件!”); * / alert 。showAndWait (); } }}        
        
 
答:Image该类需要一个URL,并且没有直接将路径作为参数的方法。但是,有帮助。
 
您可以按照以下方式对代码进行处理:
 
字符串 imagepath  =  file 。toURI ()。toURL ()。toString ();
它将把您转换File file成可以传递给setImage()方法的可行格式。您将必须执行一些异常处理,因为上述操作可能会引发MalformedURLException,但这很容易,对吧?
 
我还建议您向您的文件中添加一些扩展名过滤器,chooser以免您选择不正确的文件格式作为图像传递。对于您上面的代码,可以很容易地做到:
 
选择器。getExtensionFilters ()。中的addAll (
新文件选择。ExtensionFilter (“图像文件” ,“* .BMP” ,“* .png格式” ,“* .JPG” ,“* .gif要点” )); //将选择器选项限制为图像文件                 
                            
如果仍然遇到问题,请发回。我正在努力工作,因此如有需要,我应该能够提供帮助。
上一篇: 使用属性选择器而不是ID选择器有什么好处?
下一篇: 确保在更改mBarsCount字段之前引发异常