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