如何将包含资源的自定义组件导入SceneBuilder?

时间:2015-02-15 18:57:48

标签: javafx scenebuilder

我已经为我的项目创建了一堆自定义节点,通过继承现有节点。

例如:

package sample;

import javafx.scene.control.Button;

public class MyCustomButton extends Button {
    public MyCustomButton() {    
        System.out.println("This is my custom button...");
    }
}

这很好用,我创建了一个jar文件,我可以将它导入到Scenebuilder中。

但是,如果我的自定义节点使用资源,并且我尝试在Scenebuilder中导入jar,则自定义组件将不会显示在导入对话框中。

package sample;

import javafx.scene.control.Button;
import javafx.scene.image.Image;

public class MyCustomButton extends Button {
    public MyCustomButton() {
        Image image = new Image("sample/picture.gif");
        System.out.println("This is my custom button...");
    }
}

如果它们包含资源,我如何说服Scenebuilder导入我的自定义组件? jar文件包含所有需要的资源,以及一个在代码中运行良好的组件,但我希望能够在Scenebuilder中使用它。

2 个答案:

答案 0 :(得分:2)

我为你做了:)。

import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;

public class MyCustomButton extends Button {
    public MyCustomButton() {
        final ImageView   imageView = new ImageView();

        Image image = new Image(getClass().getClassLoader().getResource("sample/picture.png").toExternalForm());

        imageView.setImage(image);
        this.setGraphic(imageView);
        System.out.println("This is my custom button...");

    }
}

答案 1 :(得分:0)

检查SB上的分析报告。单击Library右侧的设置图标,然后选择" Custom Library Folder" - > "显示Jar分析报告"。你可以看到一些有用的提示。也许这有助于你。