1. 准备图片资源
    • 首先,将你想要显示的图片放在项目的合适资源文件夹下。例如,在 JavaFX 项目中,可以将图片放在src/main/resources目录下。假设你的图片名为example.jpg
  2. 创建 FXML 布局文件
    • 在 FXML 布局文件(例如layout.fxml)中,添加一个ImageView元素来显示图片。以下是一个简单的 FXML 布局示例:
     

     
    <?xml version="1.0" encoding="UTF-8"?>
    <?import javafx.scene.image.ImageView?>
    <?import javafx.scene.layout.VBox?>
    <VBox xmlns:fx="http://javafx.com/fxml/1" fx:controller="your.package.Controller">
        <ImageView fx:id="imageView"/>
    </VBox>
    
     
    • 这里创建了一个垂直布局VBox,并在其中添加了一个ImageView,它的fx:id属性设置为imageView,这个id将用于在控制器类中引用这个ImageView
  3. 创建控制器类
    • 创建一个与 FXML 对应的控制器类(例如Controller.java)。在这个类中,加载图片并将其设置到ImageView中。
     

    package your.package;
    import javafx.fxml.FXML;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    public class Controller {
        @FXML
        private ImageView imageView;
        public void initialize() {
            try {
                // 加载图片资源,注意路径要根据实际情况调整
                Image image = new Image(getClass().getResourceAsStream("/example.jpg"));
                imageView.setImage(image);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
     
    • initialize方法中,通过Image类加载图片。getClass().getResourceAsStream("/example.jpg")语句用于获取图片资源的输入流,其中/表示从类路径的根目录开始查找。如果你的图片在resources目录下的子目录(例如images)中,路径应该是/images/example.jpg。然后将加载的图片设置到ImageView中。
  4. 加载 FXML 布局并显示窗口
    • 在主应用程序类(例如Main.java)中,加载 FXML 布局并显示窗口。
     

    package your.package;
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Scene;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    public class Main extends Application {
        @Override
        public void start(Stage primaryStage) {
            try {
                FXMLLoader loader = new FXMLLoader(getClass().getResource("layout.fxml"));
                VBox root = loader.load();
                Scene scene = new Scene(root, 300, 300);
                primaryStage.setScene(scene);
                primaryStage.show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            launch(args);
        }
    }
    
     
    • 在这里,FXMLLoader用于加载layout.fxml文件,将加载后的布局设置为场景Scene的根节点,然后将场景设置到舞台Stage上并显示窗口。通过这样的步骤,就可以在 JavaFX 的 FXML 布局中显示图片了。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐