我在使用F
XML上的ImageView加载图像时遇到问题.
我的控制器类:
public class BoxViewController { @FXML private Label label_BoxID; @FXML private ImageView Boximage; public void initData(ObservableList<BoxProperty> observableList,BoxService sBox,TableView tableview) { this.label_BoxID.setText( String.valueOf(this.Boxproperty.getPBoxid())); Image image = new Image("Boximage.jpg"); this.Boximage = new ImageView(); this.Boximage.setImage(image); } }
因此,使用文本设置标签有效,但图像不会出现在我的ImageView中.
对于ImageView,我在FXML文件中添加了一个ID:
<ImageView fx:id="Boximage" disable="false" fitHeight="150.0" fitWidth="200.0" layoutX="69.0" layoutY="322.0" pickOnBounds="true" preserveRatio="true" />
我很困惑,为什么这不起作用,因为标签工作,但图像不会加载.
我还检查了Boximage是否为空,但事实并非如此.也没有例外.
解决方法
也许这是源图像位置问题.根据
this website的评论,来自“Maxim”,如果你使用新的Image(“Boximage.jpg”);,根目录是主项目文件夹,例如用于scene.getStylesheets().add(“login.css” );根文件夹是src.
也许你可以试试这个:
也许你可以试试这个:
Image img = new Image("file:Boximage.jpg"); ImageView imageView = new ImageView(img);
仅用于测试目的,尝试从FXML加载该图像:
<ImageView id="BoxImage" ...> <image> <Image url="@Boximage.jpg" /> </image> </ImageView>