📅  最后修改于: 2023-12-03 15:31:35.993000             🧑  作者: Mango
在 JavaFX 中,可以使用 Image
类加载图像。如果需要从资源中加载图像,可以使用以下方法。
src
目录下首先,将需要加载的图像文件放到项目的 src
目录下。例如,假设有一个 image.jpg
文件,可以将其放到 src
目录下。
getClass().getResource()
方法获取资源 URL在 Java 中,可以使用 getClass().getResource()
方法获取资源的 URL。在 JavaFX 中,可以使用该方法获取资源的 URL,并将其转换为 String 类型。
String imageURL = getClass().getResource("image.jpg").toString();
该代码将返回 image.jpg
文件的 URL 作为 String 类型的变量 imageURL
。
Image
类加载图像最后,使用 Image
类加载图像。可以使用 Image
类的两个构造函数:
Image(String url)
Image(InputStream is)
使用第一个构造函数,可以直接传入资源的 URL。例如:
Image image = new Image(imageURL);
使用第二个构造函数,需要先获取 InputStream
,然后再传入 Image
构造函数。例如:
InputStream stream = getClass().getResourceAsStream("image.jpg");
Image image = new Image(stream);
注意,使用第二个构造函数时,需要注意资源文件必须在 src
目录下。
以下是完整的示例代码。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.io.InputStream;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 获取资源 URL
String imageURL = getClass().getResource("image.jpg").toString();
// 使用 URL 加载图像
Image image1 = new Image(imageURL);
// 使用 InputStream 加载图像
InputStream stream = getClass().getResourceAsStream("image.jpg");
Image image2 = new Image(stream);
// 创建 ImageView
ImageView imageView1 = new ImageView(image1);
ImageView imageView2 = new ImageView(image2);
// 创建布局
StackPane root = new StackPane();
root.getChildren().addAll(imageView1, imageView2);
// 创建场景
Scene scene = new Scene(root, 400, 300);
// 显示窗口
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
该代码将显示两个相同的图像,一个使用 URL 加载,一个使用 InputStream 加载。