这是我的代码:
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上加载图像。谢谢!
答案 0 :(得分:0)
ImageView构造函数的参数应该是一个URL字符串。你应该创建一个像这样的文件,并从中获取URL,而不是摆弄字符串。
imageView = new ImageView(new File("flower.png").toURI().toURL().toExternalForm());
这假定文件位于执行程序的工作目录中。