JavaFX と SceneBuilder 1.1 でカスタム コントロールを作成しようとしています。
私はこのコードを持っています:
FXML
<?import libreria.javaFX.componentes.componenteTextField.*?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<CustomComponent fx:id="pastaTxt" layoutX="69.0" layoutY="87.0" prefWidth="200.0" />
</children>
</AnchorPane>
CustomComponent.java
package libreria.javaFX.componentes.componenteTextField;
import javafx.scene.control.TextField;
public class CustomComponent extends TextField {
public CustomComponent() {
super();
// TODO Auto-generated constructor stub
}
public CustomComponent(String arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
}
SceneBuilder から開こうとすると、次のように表示されます。
欠落しているタイプは次のとおりです: [CustomComponent]
そして、クラスパスを指定する機会が与えられます(これでも問題は解決しません)。
次のように、インポートステートメントにもクラスを配置してみました。
<?import libreria.javaFX.componentes.componenteTextField.CustomComponent?>
しかし、それはClassNotFoundException
.
なぜこれが起こっているのかについてのアイデアはありますか?
詳しくは
これらのクラスだけで新しいプロジェクトを作成しました。
コードは次のとおりです。
CustomControl.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import custom.CustomControl?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<?scenebuilder-classpath-element ../../bin/custom?>
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml">
<children>
<CustomControl layoutX="51.0" layoutY="100.0" prefWidth="200.0" />
</children>
</AnchorPane>
CustomControl.java
package custom;
import javafx.scene.control.TextField;
public class CustomControl extends TextField {
public CustomControl() {
super();
}
public CustomControl(String arg0) {
super(arg0);
}
}
そして、私はまだ同じ問題を抱えています。ダイアログでクラスパスを指定すると、すべてが正しいように見えますが、SceneBuilderを開くと同じエラーが発生します。
最後の情報
ソリューションにアプローチしようとして、このプロジェクトを Eclipse で試しました。その結果、Eclipse ではウィンドウが正常に表示されますが、SceneBuilder ではこれらのエラーが引き続き発生します。この手がかりが役立つことを願っています。
Scene Builder でこの種のカスタム コントロール定義を行ったことがあれば、例を挙げて教えてください。私たちのプロジェクトにとって非常に役立ちます。