好吧,我对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中设置的引用 - 您可以将其删除。