无法使用Netbeans IDE在JavaFX中加载图像

时间:2016-05-17 07:12:43

标签: java netbeans

这是我的代码:

package week7;

import javafx.scene.*;
import javafx.stage.*;
import javafx.application.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.text.*;
import javafx.scene.image.*;

/**
 * This application demonstrates a VBox.
 */
public class VBoxExample extends Application {
public static void main(String[] args) { launch(args); }

private Label usernameLbl;
private TextField usernameTf;
private PasswordField passwordPf;
private Button loginBtn;
private ImageView imageView;

@Override
public void start(Stage stage) throws Exception {
    // Create the leaves
    usernameLbl = new Label("Username:");
    usernameTf = new TextField();
    passwordPf = new PasswordField();
    loginBtn = new Button("Login");
    imageView = new ImageView("file: flower.png");

    // Create a branch
    VBox vBox = new VBox(10);
    vBox.getChildren().addAll(usernameLbl, usernameTf, passwordPf, loginBtn, imageView);

    // Set the scene, show the stage
    stage.setScene(new Scene(vBox));
    stage.setTitle("VBox example");
    stage.show();
}
}

我尝试使用以下代码在VBox窗口下放置一个图像:

imageView = new ImageView("file: flower.png");

程序有效,但没有显示图像。我在FXDemo1(项目)中创建我的项目 - week7(包) - VBoxExample(类)。我已经尝试将图像文件放入week7包中或将其添加到build文件夹中。我甚至尝试在/ src下创建一个名为resources的文件夹,但它们都不起作用。

使用file:flower.png是程序运行的唯一方法,我也尝试使用/flower.png或/resources/flower.png,但它们会导致错误。

请告诉我如何在Netbeans上加载图像。谢谢!

1 个答案:

答案 0 :(得分:0)

ImageView构造函数的参数应该是一个URL字符串。你应该创建一个像这样的文件,并从中获取URL,而不是摆弄字符串。

imageView = new ImageView(new File("flower.png").toURI().toURL().toExternalForm());

这假定文件位于执行程序的工作目录中。