首页 文章

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

提问于
浏览
1

我通过子类化现有节点为我的项目创建了一堆自定义节点 .

例如:

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 回答

  • 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...");
    
        }
    }
    
  • 0

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

相关问题