Phi*_*yyy 6 java javafx image filechooser
我试图从文件选择器中选择后立即显示图像文件.文件选择器仅限于.png和.jpg文件,所选文件存储在File类型的变量中.要做到这一点,我已经设置了一个ImageView,我希望用这个新文件设置图像只是问题是它是File not Image类型.
怎么能实现这一目标?代码到目前为止......
public void fileSelection(){
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select Profile Picture");
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Image Files", "*.png", "*jpg"));
File selectedFile = fileChooser.showOpenDialog(null);
File selectedFileInput = selectedFile;
if(selectedFile != null) {
selectedFileOutput.setText("File selected: " + selectedFile.getName());
previewPicture.setImage();
} else {
selectedFileOutput.setText("Please select a profile picture...");
}
}
Run Code Online (Sandbox Code Playgroud)
你可以简单地创建一个图像
Image image = new Image(selectedFile.toURI().toString());
Run Code Online (Sandbox Code Playgroud)
然后把它放在ImageView:
previewPicture.setImage(image);
Run Code Online (Sandbox Code Playgroud)
其他构造函数可以更好地控制加载图像所需的资源.如果要强制图像为特定大小,可以在加载时调整大小,如果用户选择大图像但您只想显示缩小版本,则可以节省内存.此外,加载大图像可能需要一些时间,因此您不应将其加载到UI线程上.Image采用字符串版本的URL 的构造函数具有在后台线程中自动加载图像的选项.以下强制宽度和高度均不超过240像素(同时保持原始高宽比),并在后台加载图像(因此不会阻止UI):
Image image = new Image(selectedFile.toURI().toString(),
240, // requested width
240, // requested height
true, // preserve ratio
true, // smooth rescaling
true // load in background
);
Run Code Online (Sandbox Code Playgroud)
请参阅其他可用构造函数的文档.
| 归档时间: |
|
| 查看次数: |
3674 次 |
| 最近记录: |