使用资源文件夹使用IntelIiJ在JavaFX项目上加载图像

问题描述 投票:1回答:2

我正在尝试将图像加载到JavaFX项目。我通过调用绝对路径Users/user/Desktop/nfc.png来做到这一点。有什么方法可以在项目内部创建资源文件夹并从中调用图像吗?

下面是我的代码:

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.awt.Taskbar;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;



public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));

        primaryStage.setResizable(false);

        Scene scene = new Scene(root);

        scene.getStylesheets().add("/sample/desing.css");

        primaryStage.getIcons().add(new Image("file:/Users/user/Desktop/nfc.png "));



        primaryStage.setScene(scene);
        primaryStage.show();
    }


    public static void main(String[] args)
    {
        Taskbar taskbar=Taskbar.getTaskbar();
        BufferedImage image = null;
        try {
            image = ImageIO.read(new File("/Users/user/Desktop/nfc.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        taskbar.setIconImage(image);
        launch(args);
    }
}

我正在使用IntelIJ。我尝试过在项目目录上创建一个名为resource的文件夹,并将其命名为Main.class.getResource()

java image javafx
2个回答
3
投票

查找图像的快速解决方案


1
投票

在项目的根目录(与src相同的层次结构中)创建一个新目录,称为resources。右键单击intellij:Right click -> Mark directory as -> Sources Root,将其转换为源目录。然后,您可以根据需要将资源文件组织到包中,就像在src中创建包一样。在这种情况下,您可以使用resources/sample/nfc.png。在您的代码中,您可以按以下方式加载它:

© www.soinside.com 2019 - 2024. All rights reserved.