Загрузка изображений из FXML и родной упаковки

У меня есть некоторые проблемы с загрузкой изображений для вкладок в панели вкладок (кнопки и т. Д.) Из файла fxml при экспорте в виде собственного пакета для osx.

Этот код прекрасно работает при запуске из Eclipse, но все изображения исчезли при экспорте приложения в виде собственного пакета.

<BorderPane stylesheets="@../my.css" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="app.view.MainController">  
   <center>  
      <TabPane maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE">  
        <tabs>  
          <Tab fx:id="projectsTab" closable="false">  
            <content>  
              <AnchorPane minHeight="0.0" minWidth="0.0">  
                     <children>  
                        <fx:include source="main/ProjectView.fxml" />  
                     </children>  
              </AnchorPane>  
            </content>  
               <graphic>  
                  <ImageView fitHeight="30.0" fitWidth="30.0" opacity="0.5" pickOnBounds="true" preserveRatio="true">  
                     <image>  
                        <Image url="@../../../resources/images/ic_list_black_48dp_1x.png" />  
                     </image>  
                  </ImageView>  
               </graphic>  
          </Tab> 

Используя этот код, работайте также при экспорте как собственный пакет, но я хотел бы сделать это способом fxml.

private void initialize() {  
    projectsTab.setGraphic(createTabImage("/images/ic_list_black_48dp_2x.png"));    
}  

private ImageView createTabImage(String pathToImage) {  
     ImageView imgView = new ImageView(new Image(this.getClass().getResource(pathToImage).toExternalForm()));  
     imgView.setFitWidth(30);  
     imgView.setFitHeight(30);  
     imgView.setOpacity(0.5);  
     return imgView;  
}  

Какие-либо предложения?

1 ответ

Решение

В большинстве установок IDE resources сама папка не экспортируется при компиляции проекта, но ее содержимое развертывается в корне пути к классам. Вы не указали в своем вопросе, где находится файл FXML по отношению к изображению, но вам, вероятно, нужно

url="@../../images/ic_list_black_48dp_1x.png"
Другие вопросы по тегам