既存のものをサブクラス化することによって、私は自分のプロジェクト用にたくさんのカスタムノードを作成しました。
例えば:
package sample;
import javafx.scene.control.Button;
public class MyCustomButton extends Button {
public MyCustomButton() {
System.out.println("This is my custom button...");
}
}
これはうまくいきます、私はjarファイルを作成し、Scenebuilderにインポートすることができます。
ただし、カスタムノードがリソースを使用していて、そのjarファイルをScenebuilderにインポートしようとすると、カスタムコンポーネントがインポートダイアログに表示されません。
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でも使用できるようにしたいと思います。
回答:
回答№1は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...");
}
}
回答№2の場合は0
SBの分析報告書を確認してください。 Libraryの右側にある設定アイコンをクリックしてから、 "Custom Library Folder" - > "Show Jar Analysis Report"を選択してください。あなたはいくつかの役に立つヒントを見ることができます。多分これはあなたを助けます。