Java中的Image和ImageView打开图片有问题的解决方法
同时使用Image和ImageView
Image中没有使用file:+ 绝对路径
//ImageView中没有使用file:+ 绝对路径
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class useImageView extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Image image = new Image("11.jpg");
ImageView iv = new ImageView(image);//Image和ImageView中没有使用file:+ 绝对路径
Pane p = new Pane(iv);
Scene scene = new Scene(p);
primaryStage.setTitle("title");
primaryStage.setScene(scene);
primaryStage.show();
}
}
错误运行结果:
此次运行,out\production\useImageView的文件夹中没有11.jpg (即所需要运行的图片),所以会报错
(一般来说,如果正常运行的话,out\production\useImageView文件夹中是会正常产生11.jpg的(即所需要运行的图片))
(如果运行错误的话,就不会在out\production\useImageView的文件夹中产生11.jpg(即所需要运行的图片))
运行正确的结果:
下图的运行中,out\production\useImageView的文件夹中自动生成00.gif,所以没有报错
注意:注意跟上一个运行结果图对比,图片不同结果不同,有些图片会自动在上述文件夹中生成有些不会
运行正确的结果:
下图的运行中,out\production\useImageView的文件夹中有11.jpg ,所以没有报错
Image中使用file:+ 绝对路径
//ImageView中没有使用file:+ 绝对路径
//但Image中有使用file:+ 绝对路径
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class useImageView extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Image image = new Image("file:E:\\IDEA(diy)\\workplace2\\useImageView\\src\\11.jpg");
ImageView iv = new ImageView(image);
Pane p = new Pane(iv);
Scene scene = new Scene(p);
primaryStage.setTitle("title");
primaryStage.setScene(scene);
primaryStage.show();
}
}
Imag中使用了 file: + 绝对路径
就算out\production\useImageView的文件夹中没有生成11.jpg ,也不会报错,可以正常打开
没有使用Image,只使用ImageView
ImageView中没有使用file:+ 绝对路径
//ImageView中没有使用file:+ 绝对路径
//没有使用Image
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
public class useImageView extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Image image = new Image("file:E:\\IDEA(diy)\\workplace2\\useofImageView\\src\\11.jpg");
//这是我自己放的照片的绝对路径
ImageView iv = new ImageView(image);
Pane p = new Pane(iv);
Scene scene = new Scene(p);
primaryStage.setTitle("title");
primaryStage.setScene(scene);
primaryStage.show();
}
}
错误运行结果:
此次运行,out\production\useImageView的文件夹中没有11.jpg (即所需要运行的图片),所以会报错
(一般来说,如果正常运行的话,out\production\useImageView文件夹中是会正常产生11.jpg的(即所需要运行的图片))
(如果运行错误的话,就不会在out\production\useImageView的文件夹中产生11.jpg(即所需要运行的图片))
运行正确的结果:
下图的运行中,out\production\useImageView的文件夹中有11.jpg ,所以没有报错
ImageView中使用了file:+ 绝对路径
ImagView中使用了 file: + 绝对路径
就算out\production\useImageView的文件夹中没有生成11.jpg ,也不会报错,可以正常打开