如何更改图标.jar导入的场景构建器

时间:2015-04-05 20:27:55

标签: javafx

目前正在完成我的论文工作,我正在制作一个javafx的组件库。

但我正在处理一个问题,我希望我可以更改导入工具场景构建器的图标.jar

1 个答案:

答案 0 :(得分:0)

在Scene Builder 2.0中,来自JAR文件的自定义控件图标由private Collection<LibraryItem> makeLibraryItems(JarReport jarReport)函数中的private LibraryItem makeLibraryItem(Path path)设置。目前该功能的来源是:

private Collection<LibraryItem> makeLibraryItems(JarReport jarReport) throws IOException {
    final List<LibraryItem> result = new ArrayList<>();
    final URL iconURL = ImageUtils.getNodeIconURL(null);
    final List<String> excludedItems = library.getFilter();

    for (JarReportEntry e : jarReport.getEntries()) {
        if ((e.getStatus() == JarReportEntry.Status.OK) && e.isNode()) {
            // We filter out items listed in the excluded list, based on canonical name of the class.
            final String canonicalName = e.getKlass().getCanonicalName();
            if (! excludedItems.contains(canonicalName)) {
                final String name = e.getKlass().getSimpleName();
                final String fxmlText = JarExplorer.makeFxmlText(e.getKlass());
                result.add(new LibraryItem(name, UserLibrary.TAG_USER_DEFINED, fxmlText, iconURL, library));
            }
        }
    }

    return result;
}

正如您所看到的,iconURL并非基于您的控件的JAR提供的任何内容,因此目前无法提供图标。这需要更改到Scene Builder(这可以在所有它的开源之后完成)。

我知道这个问题有点老了,但希望这会对某人有所帮助。