アノテーションを使用して初期化できるJavafx 8を使用してカスタムボタンを作成したいとします。 ボタンの初期化では、FXML注釈だけが表示されました。 注釈を使用してカスタムボタンを作成するにはどうすればよいですか?javafxカスタムコントロールにアノテーションを追加
注釈:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Anno {
String someAction();
String someValue();
}
クラスのコンストラクタ:
public CustomButton() {
super();
if (this.getClass().isAnnotationPresent(Anno.class)) {
Anno anno = this.getClass().getAnnotation(Anno.class);
setAction(anno.someAction());
setValue(anno.someValue());
}
initialize();
}
カスタムボタンの呼び出し:
@FXML
@Anno(someAction = "someAction", someValue = "Hello")
private CustomButton button;
はそうする方法はありますか?
'Anno'はフィールド注釈ですので、this.getClass()。isAnnotationPresent(Anno.class)'はそれを返しません。アノテーション値は、フィールドを取得することによって、包含クラスで取り出すことができます。 – DVarga
@DVargaあなたは何を変えるべきですか? – Zoltanik