获取要显示为背景的图像

fzsnzjdm  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(323)

我试图使一个图像显示作为我的场景背景。每当我运行代码时,它都会打开窗口,但背景是空的。我在这里尝试了一些解决方案:
javafx如何设置场景背景图像
从这里开始:
javafx中的背景图像
我不能让他们中的任何一个正常工作。

import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class Starbase extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Starbase Command");
        Pane pane = new Pane();
        ImageView imageView = new ImageView(new Image("file:space.jpg"));
        imageView.setFitHeight(800);
        imageView.setFitWidth(800);
        pane.getChildren().add(imageView);
        Scene scene = new Scene(pane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}
a1o7rhls

a1o7rhls1#

我最终解决了自己的问题。下面的代码按照我最初的意图工作。老实说,我不知道为什么它是这样工作的,而不是其他,但这是我已经结束了。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Starbase extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        // Setting the title of the window
        primaryStage.setTitle("Starbase Command");
        //Creating the pane
        StackPane stackPane = new StackPane();
        //Making the imageView for the background
        Image img = new Image("file:space.jpg");
        ImageView imageView = new ImageView(img);
        imageView.setFitHeight(800);
        imageView.setFitWidth(800);
        //Adding the imageView to the stackPane
        stackPane.getChildren().add(imageView);
        Scene scene = new Scene(stackPane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

相关问题