Как установить изображение в качестве фона с помощью JavaFX? - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь поместить изображение в качестве фона в сцену JavaFX, но мой код не работает.

Я пытаюсь создать игровую программу Battleship в java eclipse, но я застрялпри проблемах с графикой.

открытый класс WindowGUI расширяет приложение {

Game game;
Image image;

public WindowGUI(Game game) {
    this.game = game;
}

public static void main(String[] args) {
    Game game = new Game();
    new WindowGUI(game);
}

@Override
public void start(Stage stage) throws Exception {

    stage.setTitle("Battleship");
    image = new Image ("C:\\Users\\amali\\git\\inf101.v19.sem2\\inf101.v19.sem2\\src\\window\\battleshipbackground.jpg");
    ImageView background = new ImageView(image);
    Button startButton = new Button("START");
    BorderPane newStack = new BorderPane();
    newStack.getChildren().add(startButton);
    newStack.getChildren().add(background);
    stage.setScene(new Scene(newStack, 1300, 860));
    stage.show();

    startButton.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
        //  START THE GAME
        }
    });


}

}

Когда я впервые попытался запустить его, он работал, и открылось новое окно сКнопка в центре, но bakcground было пустым.Когда я пытаюсь установить изображение в качестве фона в окне, используя кнопку «Пуск», ничего не происходит ..

Ответы [ 2 ]

3 голосов
/ 11 апреля 2019

Лучший способ сделать это - использовать класс Background, а не пытаться добавить ImageView в качестве дочернего элемента вашего BorderPane.

Image image = new Image("C:\\Users\\amali\\git\\inf101.v19.sem2\\inf101.v19.sem2\\src\\window\\battleshipbackground.jpg");

BackgroundSize size = new BackgroundSize(BackgroundSize.AUTO, 
        BackgroundSize.AUTO, 
        false, 
        false, 
        true, 
        false);

Background background = new Background(new BackgroundImage(image,
        BackgroundRepeat.NO_REPEAT,
        BackgroundRepeat.NO_REPEAT,
        BackgroundPosition.CENTER,
        size));

newStack.setBackground(background);
0 голосов
/ 11 апреля 2019

Использование BackgroundImage class. или попробуйте это JavaFX Как установить фоновое изображение сцены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...