【问题标题】:JavaFX inserting an imageJavaFX插入图像
【发布时间】:2018-08-15 20:59:45
【问题描述】:

好的,我对 Java 非常非常陌生,而且是自学成才,所以不要取笑我糟糕的编码;) 我在搞乱 Java fx 并试图将图像插入到边框布局中。

这是我用来显示图像的控制器中的方法,但我无法使文件路径正常工作。它目前有“/images/brownBear.jpg”作为文件路径,但我尝试了相对路径-

com/jaimependlebury/mammal/images/brownBear.jpg

以及完整路径和介于两者之间的所有内容,我要么得到一个

FileNotFoundException

NullPointerErrorException

我什至不确定我是否正确设置了它,我在不同的网站上发现了不同的东西,并试图将信息拼凑在一起,因此我们将不胜感激。

FXML 文件

<ImageView fx:id="picture">
</ImageView>

控制器文件-

我在类的顶部声明了 ImageView 图片变量,我只是没有将它包含在代码块中。

 @FXML
public void handleMammalListView()throws FileNotFoundException {
    Species species= mammalList.getSelectionModel().getSelectedItem();
    picture=new ImageView();
    Image img =new Image(new FileInputStream("/images/brownBear.jpg"));
    picture.setImage(img);
            speciesName.setText(species.getSpeciesName());
    details.setText(
                    "Scientific name: "  + species.getScientificName() +"\n"+
                    "Staus: " +    species.getStatus() + "\n" +
                    "Distribution: " + species.getHabitat() +"\n" +
                    "Food: " + species.getFood() + "\n" +
                    "Birth: " + species.getBirth() + "\n" +
                    "Distinguishing Characteristics: " + species.getBodyType() + "\n"+
                    "Nursing: " + species.getNurse() + "\n" +
                    "Type of hair: " + species.getTypeOfHair());

【问题讨论】:

  • 你不需要这个 - picture=new ImageView();因为您正在使用 FXML 注入它。这将重置引用,并且不会显示在 UI 上。
  • 感谢工作
  • 我会把这个作为答案——你能接受吗?谢谢。

标签: java javafx


【解决方案1】:

以下代码行:

picture=new ImageView();

正在重置您在 FXML 中设置的引用 - 您可以将其删除。

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 2014-05-15
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多