Изображение JFX не отображается в сетке - PullRequest
0 голосов
/ 29 октября 2019

Вот мой код. После компиляции в сетке отображаются только кнопки и метки, но изображение не будет. Я поместил изображение в файл ресурсов, думая, что это может решить проблему, но все равно не будет отображаться.

публичный класс Main extends Application {

@Override
public void start(Stage primaryStage) {
    //image controls
    Image image = new Image("file:resource/HotAirBalloon.jpg");
    ImageView imageView = new ImageView(image);

    //Label controls

    Label label1 = new Label ("Label 1");
    Label label2 = new Label ("Label 2");
    Label label3 = new Label ("Label 3");

    //button controls

    Button button1 = new Button("Button1");
    Button button2 = new Button("Button2");
    Button button3 = new Button("Button3");

    VBox vbox = new VBox(10 ,imageView);

    GridPane gridpane = new GridPane();

    gridpane.add(button1, 0,0);
    gridpane.add(label1,0,1);

    gridpane.add(button2, 0,2);
    gridpane.add(label2, 0, 3);

    gridpane.add(button3, 0,4);
    gridpane.add(label3, 0,5);
    gridpane.add(vbox, 1,0);



    gridpane.setHgap(10);
    gridpane.setPadding(new Insets(20));





    Scene scene = new Scene(gridpane);


    primaryStage.setScene(scene);

    primaryStage.show();
}


public static void main(String[] args) {
    launch(args);
}

}

1 Ответ

0 голосов
/ 29 октября 2019

Я скопировал ваш код, как он есть, и он сработал для меня, сохранил изображение непосредственно в моем src и удалил часть «file:» пути следующим образом:

import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends javafx.application.Application {

    @Override
    public void start(Stage primaryStage) {
        //image controls
        Image image = new Image("2.png");
        ImageView imageView = new ImageView(image);

        //Label controls

        Label label1 = new Label ("Label 1");
        Label label2 = new Label ("Label 2");
        Label label3 = new Label ("Label 3");

        //button controls

        Button button1 = new Button("Button1");
        Button button2 = new Button("Button2");
        Button button3 = new Button("Button3");

        VBox vbox = new VBox(10 ,imageView);

        GridPane gridpane = new GridPane();

        gridpane.add(button1, 0,0);
        gridpane.add(label1,0,1);

        gridpane.add(button2, 0,2);
        gridpane.add(label2, 0, 3);

        gridpane.add(button3, 0,4);
        gridpane.add(label3, 0,5);
        gridpane.add(vbox, 1,0);



        gridpane.setHgap(10);
        gridpane.setPadding(new Insets(20));





        Scene scene = new Scene(gridpane);


        primaryStage.setScene(scene);

        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }

}

screenshot !!

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