【发布时间】: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 上。
-
感谢工作
-
我会把这个作为答案——你能接受吗?谢谢。